Dai Chong's blog

最近在做一个微信上的会员系统,涉及到微信支付回调中发送模板消息的问题。从来不喜欢看微信文档的我遇到了非常多的坑,最终还是填平了,希望大家再看了我这篇文章之后能少走些弯路吧!

下面为大家贴出代码:

支付回调
1
2
3
4
5
6
7
8
//调用模板消息
user_pay(100,$userid,$openid,'pay_success',$integral.'元',$balance.'元');
//向微信发送支付成功
$textTpl="<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>";
echo $textTpl;


模板消息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//获取access_token
$access_token=access_tokens($appid,$appsecret,$mulu);
//点击模板的跳转地址
$url=$a['titleurl']."?action=my";

//获取通知模板Id
$mb = $mbID;
//充值成功通知
if($type=='pay_success'){
$name = '充值成功!';
$time = date("Y-m-d H:i:s");
$remark = "恭喜您充值成功了!您可以前往个人中心查看账户余额以及升级方式,感谢您的支持!";
//模板消息
$template=array(
'touser'=>$openid,
'template_id'=>$mb,
'url'=>$url,
'topcolor'=>"#7B68EE",
'data'=>array(
'first'=>array('value'=>urlencode($name),'color'=>"#ff0000"),
'keyword1'=>array('value'=>urlencode($userid),'color'=>'#0000FE'),
'keyword2'=>array('value'=>urlencode($price),'color'=>'#000000'),
'keyword3'=>array('value'=>urlencode($balance),'color'=>'#000000'),
'keyword4'=>array('value'=>urlencode($time),'color'=>'#000000'),
'remark'=>array('value'=>urlencode($remark),'color'=>'#008000'),
)
);
}
$json_template=json_encode($template);
$url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token;
$res=http_request($url,urldecode($json_template));
$res = json_decode($res,true);
if($res['errcode']==0){
return 1;
}else{
return 0;
}

微信发送模板消息成功之后会回调你配置的消息地址

注意在你配置的消息回调地址的方法中找到微信所回调的代码不能用exit或die来结束代码,支付回调将无法输出支付成功!


 评论