微信商城用戶購買商品后,推送模板消息給用戶


例子:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277

  使用效果

  

1 設置所屬行業

2 獲取設置的行業信息

3 獲得模板ID

4 獲取模板列表

5 刪除模板

6 發送模板消息

7 事件推送

以上是推送模板消息,官方推薦步驟,本人再此處不用,第四部之前都是后台操作的,所以在此處,已經知道模板id了,直接進行第六步發送消息

第一步:首先獲取appid。appsecret信息,然后通過微信提供的api地址進行獲取accesstoken

第二布:通過sendMessage方法發送消息,完成

$appid = $GLOBALS['cfg_weixi_appkey'];
$appsecret = $GLOBALS['cfg_weixi_appsecret'];
if ($appid && $appsecret) {
$atoken = Common::get_token($appid, $appsecret);//獲取ACCESS_TOKEN
}
$member = Common::session('member');//獲取用戶id
if (!empty($member)) {
$notuse = DB::select('wechatcode', 'nickname')->from('member')
->where('mid', '=', $member['mid'])
->execute()
->current();//獲取用戶表中wechatcode字段的openid信息
$oppenid = $notuse['wechatcode'];
$proname = '商品名稱';
$price = '588';
$report = '啊颯颯及時';
$rest = Common::sendMessage($atoken, $oppenid, $proname, $price, $report);//通過這個方法發送模板信息
}

var_dump($rest);die;

以下是,調用的兩個方法:

/**
* [獲得全局access_token]
* @copyright [copyright]
* @author docblokr 2018-07-18
* @version [version]
* @param [type] $appid [微信appid]
* @param [type] $appsecret [微信的appsecret]
* @return [type] [description]
*/
public static function get_token($appid, $appsecret)
{
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret;
$curl = curl_init(); // 啟動一個CURL會話
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 從證書中檢查SSL加密算法是否存在
$tmpInfo = curl_exec($curl); //返回api的json對象
//關閉URL請求
curl_close($curl);
$arr = json_decode($tmpInfo, true); //將結果轉為數組
return $arr['access_token'];//最終獲取的accesstoken
}

/**
* [推送模板信息]
* @copyright [參數]
* @author docblokr 2018-07-18
* @version [version]
* @param [type] $token [ACCESS_TOKEN]
* @param [type] $openid [發送給誰的openid]
* @param [type] $proname [購買的商品名稱]
* @param [type] $price [價格]
* @param [type] $report [自定義發送的內容]
* @return [type] [description]
*/
public static function sendMessage($token, $openid, $proname, $price, $report)
{
$urlm = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $token; //發送模板信息請求地址
//發送的模板信息(微信要求json格式,這里為數組(方便添加變量)格式,然后轉為json)
$post_data = array(
  "touser" => $openid, //推送給誰,openid
  "template_id" => "ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", //微信后台的模板信息id
  "url" => "http://www.baidu.com", //模板跳轉鏈接
  "data" => array(
  "first" => array(
    "value" => "恭喜你購買成功!",
    "color" => "#173177"
   ),
  "proname" => array(
    "value" => $proname, //傳的變量
    "color" => "#173177"
  ),
  "price" => array(
    "value" => $price,
    "color" => "#173177"
  ),
  "report" => array(
    "value" => $report,
    "color" => "#173177"
  ),
  "reporttime" => array(
    "value" => date('Y-m-d H:i:s'),
    "color" => "#173177"
  ),
  "remark" => array(
    "value" => "歡迎再次購買!",
    "color" => "#173177"
  ),
    )
);
//將上面的數組數據轉為json格式
$post_data = json_encode($post_data);
/*發送模板消息
http請求方式: POST
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
*/
//發送數據,post方式發送模板消息
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $urlm);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($post_data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM