Cet article présente principalement l'applet WeChat et PHP pour l'envoi de notifications de messages de modèle. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Tout d'abord, le modèle. l'interface de message nécessite un écrit sur le serveur backend. 【Ajouter! Actuellement, les messages des modèles de mini-programme WeChat ne peuvent être déclenchés que par par moi et m'être envoyés. 】Modifié en 2018.4.9 : Une soumission peut émettre un seul formulaire, et le nombre de soumissions pour plusieurs soumissions est indépendant et ne s'affecte pas
Vous pouvez émettre 3 articles pour un seul paiement. Le nombre d'articles émis pour plusieurs paiements est indépendant et ne s'affecte pas.
Mini programme
Fichier .wxml J'ai oublié de l'ajouter avant, car il doit être formid ou prepay_id. Il faut donc qu'il y ait un bouton pour déclencher l'acquisition. Si vous avez des méthodes qui ne nécessitent pas de déclenchement manuel, n’hésitez pas à m’éclairer ! ! ! ! Cela fait longtemps que je réfléchis à cette question ! !
Fichier .js
Interface backend<form bindsubmit="tiXian" report-submit='true'> <button class='btn' form-type="submit" disabled="{{lock}}">提现</button> </form>
/** * 触发微信提醒 */ 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
Recommandations associées : Explication détaillée des points de connaissances pour l'envoi d'e-mails en 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; // 返回数据 } ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!