找回密码
 立即注册

QQ登录

只需一步,快速开始

微信公众号开发资源

关注:848

所属分类: 微信开发 微信公众号开发资源

本版块为微信公众号开发教程与公众号开发相关技术分享板块,技术提问请到其他对应的问答板块发帖:)

[公众号开发博客] 微信支付开发之交易通知实例

[复制链接]
查看: 1308|回复: 3
最佳答案
0 

4

主题

6

帖子

58

积分

新人求带

积分
58
 楼主| 发表于 2016-7-13 11:00:58 | 显示全部楼层 |阅读模式
一、交易通知

用户在成功完成支付后,微信后台通知(POST)商户服务器(notify_url)支付结果。商户可以使用notify_url的通知结果进行个性化页面的展示。
对后台通知交互时,如果微信收到商户的应答不是success或超时,微信不为通知失败,微信会通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。
后台通知通过请求中的 notify_url 迚行,采用 POST 机制。
同时,在postData中还将包含xml数据。

二、交易结果获取与响应

根据官方文档,创建notice.php用于通知结果。
程序内容如下所示:
  1. <?php

  2. foreach ($_GET as $key=>$value)
  3. {
  4. logger("Key: $key; Value: $value");
  5. }
  6. $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
  7. logger($postStr);

  8. if (isset($_GET)){
  9. echo "success";
  10. }

  11. //日志记录
  12. function logger($log_content)
  13. {
  14. $max_size = 100000;
  15. $log_filename = "log.xml";
  16. if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
  17. file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);
  18. }
  19. ?>
复制代码

上述程序的作用是:
获取post到url的通知,他们以GET变量形式
获取post的XML数据包
返回成功消息 success


将notice.php的完整路径放入JS API支付的notice url中。
  1. $wxPayHelper->setParameter("notify_url", http://www.doucube.com/wxpay/notice.php);
复制代码

这样当交易完成后,该url将收到通知,并记录在日志文件中,我们的测试如下所示:

获得的GET变量及XML如下所示:
  1. Key: bank_billno; Value: 201405273540085997
  2. Key: bank_type; Value: 2011
  3. Key: discount; Value: 0
  4. Key: fee_type; Value: 1
  5. Key: input_charset; Value: GBK
  6. Key: notify_id; Value: Gx8ov6tT6_yaARrtKG6RFZ4KiVtKqVnJzvulFlteJ3dhBg38iRtKs0pTXXfgh8WnH15mIhG6j65ggbzzYguh1mutG3B5oHsK
  7. Key: out_trade_no; Value: JfuKdiBig4zZnE4n
  8. Key: partner; Value: 1234567890
  9. Key: product_fee; Value: 1
  10. Key: sign; Value: 08876C4A9F7A36A9EA972C211C122362
  11. Key: sign_type; Value: MD5
  12. Key: time_end; Value: 20140527194139
  13. Key: total_fee; Value: 1
  14. Key: trade_mode; Value: 1
  15. Key: trade_state; Value: 0
  16. Key: transaction_id; Value: 1218614901201405273313473135
  17. Key: transport_fee; Value: 0

  18. <xml><OpenId><![CDATA[o0pk9uIVnlY-fJkzFKEbQ6LJ4cFc]]></OpenId>
  19. <AppId><![CDATA[wx0000000000000000]]></AppId>
  20. <IsSubscribe>1</IsSubscribe>
  21. <TimeStamp>1401190899</TimeStamp>
  22. <NonceStr><![CDATA[iOb2flJ0ILFAmBqJ]]></NonceStr>
  23. <AppSignature><![CDATA[66678894aae680ba140e18e66d1295dfadabd9ab]]></AppSignature>
  24. <SignMethod><![CDATA[sha1]]></SignMethod>
  25. </xml>
复制代码

而在微信窗口中将收到OK的弹出窗
201671292127979.jpg

以上就是对微信支付开发交易通知的资料整理,谢谢支持!
回复

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-7 21:15:15 | 显示全部楼层
看起来不错,~!
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-7 22:05:55 | 显示全部楼层
能否正常使用最重要。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

3

帖子

70

积分

等待验证会员

积分
70
发表于 2019-7-4 12:32:25 | 显示全部楼层
32225669_201906221333010089875138.png

32225669_201906221334260744982568.png

32225669_201906221336060086200559.png

32225669_201906221338440944363646.png

32225669_201906221339410209108359.png

32225669_201906221340410880483374.png

32225669_201906221343550018367472.png

32225669_201906221345090892636301.png

32225669_201906221346290547234123.png

32225669_201906270659470537397632.png

32225669_201906270702140897265112.png

32225669_201906270704170289676582.png

32225669_201907031706130658110611.png


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



www.henkuai.com—微信开发者的分享交流平台,专注微信开发生态。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

微信公众号

广告推广
QQ:805874290

市场合作
zhongcong@henkuai.com