Maison  >  Article  >  développement back-end  >  L'applet WeChat et PHP envoient une notification de message de modèle

L'applet WeChat et PHP envoient une notification de message de modèle

不言
不言original
2018-06-02 09:19:072288parcourir

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

Selon les informations du modèle, la valeur correspondante est sortie en arrière-plan, ainsi que le formid Or prepay_id, l'openid du notifiant.

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=&#39;true&#39;>
    <button class=&#39;btn&#39; form-type="submit" disabled="{{lock}}">提现</button>
  </form>

  /**
   * 触发微信提醒
   */
  remindMessage: function (formid){
    var that = this
    wx.request({
      method: &#39;POST&#39;,
      url: &#39;https://www.**********************_message.php&#39;,//后台接口
      data: {
        o_id: that.data.allthing.openid,
        u_name: that.data.allthing.userInfo.nickName,
        money: that.data.money,
        formid: formid
      },
      header: {
        &#39;content-type&#39;: &#39;application/x-www-form-urlencoded&#39;
      },
      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(&#39;/o**********************c/function.php&#39;);
include_once(&#39;/o*************************on/config.php&#39;);
$ms = new Mysqls();
$o_id = intval($_POST[&#39;o_id&#39;]);
$u_name = addslashes($_POST[&#39;u_name&#39;]);
$money  = floatval($_POST[&#39;money&#39;]);
$formid = addslashes($_POST[&#39;formid&#39;]);
$dated = date("Y-m-d H:i:s");
$to_place = "微信钱包";
$remark = "余额约 0-5 个工作日返回您的充值账户,请等待余额到账通知";
$template_id = "zAW*******************4DY";      //模板id
$access_token=M::Get(&#39;q******_&#39;.$appid);//需要使用token。放在缓存中!!
if(!$access_token){
        $url_access_token = &#39;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&#39;.$appid.&#39;&secret=&#39;.$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[&#39;access_token&#39;];
        M::Set(&#39;qub*************_&#39;.$appid,$access_token,3600);
}
if(!$o_id || !$u_name || !$money || !$formid){
	$arr = array(
		&#39;ret&#39;=>0,
		&#39;msg&#39;=>&#39;参数错误!&#39;
	);
	echo json_encode($arr);
	die();
}
if(!empty($access_token)) {
	$url = &#39;https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=&#39;.$access_token;  //此处变量插入字符串不能使用{}!!!  
 	$data = &#39;{
		  "touser":"&#39;.$o_id.&#39;",  
		  "template_id":"&#39;.$template_id.&#39;",
		  "form_id":"&#39;.$formid.&#39;",   
		  "data": {
			  "keyword1": {
				  "value":"&#39;.$u_name.&#39;"
			  }, 
			  "keyword2": {
				  "value":"&#39;.$money.&#39;" 
			  }, 
			  "keyword3": {
				  "value":"&#39;.$to_place.&#39;"
			  } , 
			  "keyword4": {
				  "value":"&#39;.$dated.&#39;" 
			  } ,
			   "keyword5": {
				  "value":"&#39;.$remark.&#39;" 
			  } 
		  }
		}&#39;;
    $result = sendCmd($url,$data);
	$arr = array(&#39;ret&#39;=>1,
		&#39;msg&#39;=>&#39;success&#39;,
		&#39;data&#39;=>array(&#39;result&#39;=>$result),	
		);
} else {
	$arr = array(&#39;ret&#39;=>0,&#39;msg&#39;=>&#39;ACCESS TOKEN为空!&#39;);
}
	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(&#39;Expect:&#39;)); //解决数据包大不能提交     
    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 &#39;Errno&#39;.curl_error($curl);      
    }      
    curl_close($curl); // 关键CURL会话      
    return $tmpInfo; // 返回数据      
}
?>

PHP envoie des messages texte, des e-mails et bien d'autres partages de code PHP pratiques

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn