この記事では、テンプレート メッセージ通知を送信するための WeChat アプレットと PHP を主に紹介します。これには、必要な友達が参照できるように共有します
まず、テンプレート メッセージ インターフェイスを記述する必要があります。バックエンドサーバー上で。 【追加!現在、WeChat アプレット テンプレート メッセージは によってのみトリガーされ、私に送信できます。 】2018.4.9に変更: 1回のフォーム送信で発行できるアイテムは1つで、複数の送信で送信されたアイテムの数は独立しており、互いに影響しません。
アプレット
のテンプレート情報に従って、対応する値がバックグラウンドに出力されるほか、通知者のopenidであるformidやprepay_idも出力されます。 .wxml ファイル
formid または prepay_id でなければならないため、以前追加するのを忘れていました。したがって、取得をトリガーするボタンが必要です。手動トリガーを必要としない方法があれば、お気軽に教えてください。 ! ! !私はこの質問について長い間考えてきました! !
<form bindsubmit="tiXian" report-submit='true'> <button class='btn' form-type="submit" disabled="{{lock}}">提现</button> </form>
.js ファイル /**
* 触发微信提醒
*/
remindMessage: function (formid){
var that = this
wx.request({
method: 'POST',
url: 'https://www.**********************_message.php',//后台接口
data: {
o_id: that.data.allthing.openid,
u_name: that.data.allthing.userInfo.nickName,
money: that.data.money,
formid: formid
},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res) {
console.log(res.data)
},
})
}
*****.php
<?php include_once('/o**********************c/function.php'); include_once('/o*************************on/config.php'); $ms = new Mysqls(); $o_id = intval($_POST['o_id']); $u_name = addslashes($_POST['u_name']); $money = floatval($_POST['money']); $formid = addslashes($_POST['formid']); $dated = date("Y-m-d H:i:s"); $to_place = "微信钱包"; $remark = "余额约 0-5 个工作日返回您的充值账户,请等待余额到账通知"; $template_id = "zAW*******************4DY"; //模板id $access_token=M::Get('q******_'.$appid);//需要使用token。放在缓存中!! if(!$access_token){ $url_access_token = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret; $json_access_token = sendCmd($url_access_token,array()); //access_token加缓存 $arr_access_token = json_decode($json_access_token,true); $access_token = $arr_access_token['access_token']; M::Set('qub*************_'.$appid,$access_token,3600); } if(!$o_id || !$u_name || !$money || !$formid){ $arr = array( 'ret'=>0, 'msg'=>'参数错误!' ); echo json_encode($arr); die(); } if(!empty($access_token)) { $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token; //此处变量插入字符串不能使用{}!!! $data = '{ "touser":"'.$o_id.'", "template_id":"'.$template_id.'", "form_id":"'.$formid.'", "data": { "keyword1": { "value":"'.$u_name.'" }, "keyword2": { "value":"'.$money.'" }, "keyword3": { "value":"'.$to_place.'" } , "keyword4": { "value":"'.$dated.'" } , "keyword5": { "value":"'.$remark.'" } } }'; $result = sendCmd($url,$data); $arr = array('ret'=>1, 'msg'=>'success', 'data'=>array('result'=>$result), ); } else { $arr = array('ret'=>0,'msg'=>'ACCESS TOKEN为空!'); } echo json_encode($arr); /** * 发起请求 * @param string $url 请求地址 * @param string $data 请求数据包 * @return string 请求返回数据 */ function sendCmd($url,$data) { $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解决数据包大不能提交 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循 curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 $tmpInfo = curl_exec($curl); // 执行操作 if (curl_errno($curl)) { echo 'Errno'.curl_error($curl); } curl_close($curl); // 关键CURL会话 return $tmpInfo; // 返回数据 } ?>
関連する推奨事項: PHP でメールを送信するための詳細な知識ポイント
PHP Send テキストメッセージや電子メールなど、多くの実用的な PHP コードを共有します
以上がWeChat アプレットと PHP はテンプレート メッセージ通知を送信しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。