手机微信微信公众号怎样完成信息消息推送作用
最先大家必须申请办理一个微信公众号
登陆到后台管理之后依照以下实际操作实行
1.加上作用软件
2.寻找模版信息
3.好啦,接下去你可以以申请办理了,随意选2个制造行业便可以了,审批根据之后进来便可以加上模版了
4.加上好模版之后看文件格式
箭头符号偏向的地区就是我们必须用的,方框的物品便是主要参数!
实际编码以下
namespace backend\modules\api\controllers;
use Yii;
use yii\rest\Controller;
use backend\mon\lib\Helper;
use backend\modules\api\models\User;
use backend\modules\api\models\Register;
use backend\mon\lib\HttpUploadFile;
use yii\base\Object;
use backend\modules\api\models\Login;
use backend\modules\api\models\Abnormal;
header( Access-Control-Allow-origin:*
header( Access-Control-Allow-Credentials:true
header( Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
header( Access-Control-Allow-Headers:Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With
header( Content-Type: text/html; charset=utf-8
class WechatController extends Controller {
public function actionIndex(){
//获得主要参数signature nonce token timestamp echostr
$nonce = Yii::$app- request- get( nonce
$token = adshare
$timestamp = Yii::$app- request- get( timestamp
$echostr = Yii::$app- request- get( echostr
$signature = Yii::$app- request- get( signature
//产生数字能量数组随后依照字典排列
$array = array();
$array = array($nonce,$timestamp,$token);
sort($array);
//拼凑标识符串、sha1数据加密,随后与signature开展效验
$str = sha1(implode($array));
//这儿是第一次启用,关键用于在基本设定中打开开启配备
if($str == $signature $echostr){
return $echostr;
}else{
self::actionMessage();
}
}
public function actionMessage(){
//获得手机微信消息推送的xml
$postArr = $GLOBALS[ HTTP_RAW_POST_DATA
$postObj = simplexml_load_string($postArr);
if(strtolower($postObj- MsgType) == event ){
//假如是关心恶性事件
if(strtolower($postObj- Event) == subscribe ){
//图组文
$toUser = $postObj- FromUserName;
$fromUser = $postObj- ToUserName;
$time = time();
$Msgtype = news
$arr = array(
array(
Title = 热烈欢迎关心AD共享资源 ,
Description = 它是一个归属于互连网爆媒的时期 ,
PicUrl = question/128.jpg ,
Url = p>
)
);
$template =
%s
.count($arr).
foreach($arr as $key= $v){
$template .=
![cdata[ .$v[ title ]. ]] /![cdata[ .$v[ title ]. ]]
}
$template .=
$info = sprintf($template,$toUser,$fromUser,$time,$Msgtype);
echo $info;
/*文字
//回应客户信息
$toUser = $postObj- FromUserName;
$fromUser = $postObj- ToUserName;
$time = time();
$Msgtype = text
$Content = 热烈欢迎关心AD共享资源微信公众号
$template =
%s
$info = sprintf($template,$toUser,$fromUser,$time,$Msgtype,$Content);
echo $info;*/
}
}
}
//推送模板信息
public function actionPushMessage(){
//获得token
$token = self::actionGetToken();
//设定url
$url = cgi-bin/message/template/send?access_token= .$token;
//设定時间
$sj = date( Y-m-d H:i:s ,time());
//设定在线充值连接
$cz_url = p>
//设定帐户账户余额
$ye = 1零元
//设定帐户名字
$name = 小郭
//设定推送的信息
$message = [
touser = 这儿是客户的openid ,
template_id = SudqvwsNYy4aFqBO4_KaWklYlhrc69c74jiAF3VBoCU ,
url = $cz_url,
data = [
first = [ value = 你好,您的帐户账户余额不够。请尽早在线充值,以防危害您的应用。 , color = #173177 ],
keyword1 = [ value = $name, color = #173177 ],
keyword2 = [ value = $ye, color = #173177 ],
keyword3 = [ value = $cz_url, color = #173177 ],
keyword4 = [ value = $sj, color = #173177 ],
remark = [ value = 若有一切疑惑请登陆vip会员系统软件联络线上在线客服 , color = #173177 ]
]
];
$data = json_encode($message);
//推送
$res = self::actionCurlRequest($url,$data);
return $res;
}
//获得token
public function actionGetToken(){
$url = cgi-bin/token?grant_type=client_credential appid=APPID secret=APPSECRET
$res = json_decode(self::actionCurlRequest($url));
return $res- access_token;
}
//curl恳求,适用post和get
public function actionCurlRequest($url,$data=null){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
}
好啦,详尽实际效果便可以出去了
要留意的是提早配备好网上的网站域名网络服务器这些,而且在手机微信的基本配备中开启一下基本配备!
实际效果图:
参照wiki?t=resource/res_main id=mp
文中标识: