博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信支付开发(4) 交易通知
阅读量:6556 次
发布时间:2019-06-24

本文共 2013 字,大约阅读时间需要 6 分钟。

本文介绍如何使用JS API支付时如何获得交易通知。

 

一、交易通知

用户在成功完成支付后,微信后台通知(POST)商户服务器(notify_url)支付结果。商户可以使用notify_url的通知结果进行个性化页面的展示。

对后台通知交互时,如果微信收到商户的应答不是success或超时,微信不为通知失败,微信会通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。

后台通知通过请求中的 notify_url 迚行,采用 POST 机制。

同时,在postData中还将包含xml数据。

 

二、交易结果获取与响应

根据官方文档,创建notice.php用于通知结果。

程序内容如下所示:

1 
$value) 5 { 6 logger("Key: $key; Value: $value"); 7 } 8 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 9 logger($postStr);10 11 if (isset($_GET)){12 echo "success";13 }14 15 //日志记录16 function logger($log_content)17 {18 $max_size = 100000;19 $log_filename = "log.xml";20 if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}21 file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);22 }23 ?>

上述程序的作用是

  1. 获取post到url的通知,他们以GET变量形式
  2. 获取post的XML数据包
  3. 返回成功消息 success

 

将notice.php的完整路径放入JS API支付的notice url中。

$wxPayHelper->setParameter("notify_url", "http://www.doucube.com/wxpay/notice.php");

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

获得的GET变量及XML如下所示:

Key: bank_billno; Value: 201405273540085997Key: bank_type; Value: 2011Key: discount; Value: 0Key: fee_type; Value: 1Key: input_charset; Value: GBKKey: notify_id; Value: Gx8ov6tT6_yaARrtKG6RFZ4KiVtKqVnJzvulFlteJ3dhBg38iRtKs0pTXXfgh8WnH15mIhG6j65ggbzzYguh1mutG3B5oHsKKey: out_trade_no; Value: JfuKdiBig4zZnE4nKey: partner; Value: 1234567890Key: product_fee; Value: 1Key: sign; Value: 08876C4A9F7A36A9EA972C211C122362Key: sign_type; Value: MD5Key: time_end; Value: 20140527194139Key: total_fee; Value: 1Key: trade_mode; Value: 1Key: trade_state; Value: 0Key: transaction_id; Value: 1218614901201405273313473135Key: transport_fee; Value: 0
1
1401190899

 

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

 

交易通知成功搞定!

转载于:https://www.cnblogs.com/kenshinobiy/p/6150153.html

你可能感兴趣的文章
Java通过Executors提供四种线程池
查看>>
idea 下tomcat字符集问题
查看>>
shell脚本的学习(一)
查看>>
javascript创建对象(二)
查看>>
开关WIFI脚本
查看>>
win7 64位_VS2010的fftw3配置
查看>>
Java02-方法 课后作业
查看>>
hdu 1003 Max Sum (DP)
查看>>
学习进度表_二周
查看>>
tag标签
查看>>
TTS语言 录音功能
查看>>
MySQL 查询最大最小值优化
查看>>
软件工程的实践项目课程的自我目标
查看>>
Weak is not weak,Strong is not strong
查看>>
setsockopt 详解
查看>>
首次使用AWS服务器EC2
查看>>
POJ-1860-Currency Exchange
查看>>
[深度学习]受限玻尔兹曼机生成手写数字训练样本原理
查看>>
莫比乌斯反演
查看>>
Django Hello World
查看>>