微信支付开发交易通知实例


Posted in PHP onJuly 12, 2016

一、交易通知

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

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

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

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

二、交易结果获取与响应

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

程序内容如下所示:

<?php

foreach ($_GET as $key=>$value) 
{
 logger("Key: $key; Value: $value");
}
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
logger($postStr);

if (isset($_GET)){
 echo "success";
}

//日志记录
function logger($log_content)
{
 $max_size = 100000;
 $log_filename = "log.xml";
 if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
 file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);
}
?>

上述程序的作用是:

获取post到url的通知,他们以GET变量形式

获取post的XML数据包

返回成功消息 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: 201405273540085997
Key: bank_type; Value: 2011
Key: discount; Value: 0
Key: fee_type; Value: 1
Key: input_charset; Value: GBK
Key: notify_id; Value: Gx8ov6tT6_yaARrtKG6RFZ4KiVtKqVnJzvulFlteJ3dhBg38iRtKs0pTXXfgh8WnH15mIhG6j65ggbzzYguh1mutG3B5oHsK
Key: out_trade_no; Value: JfuKdiBig4zZnE4n
Key: partner; Value: 1234567890
Key: product_fee; Value: 1
Key: sign; Value: 08876C4A9F7A36A9EA972C211C122362
Key: sign_type; Value: MD5
Key: time_end; Value: 20140527194139
Key: total_fee; Value: 1
Key: trade_mode; Value: 1
Key: trade_state; Value: 0
Key: transaction_id; Value: 1218614901201405273313473135
Key: transport_fee; Value: 0

<xml><OpenId><![CDATA[o0pk9uIVnlY-fJkzFKEbQ6LJ4cFc]]></OpenId>
<AppId><![CDATA[wx0000000000000000]]></AppId>
<IsSubscribe>1</IsSubscribe>
<TimeStamp>1401190899</TimeStamp>
<NonceStr><![CDATA[iOb2flJ0ILFAmBqJ]]></NonceStr>
<AppSignature><![CDATA[66678894aae680ba140e18e66d1295dfadabd9ab]]></AppSignature>
<SignMethod><![CDATA[sha1]]></SignMethod>
</xml>

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

微信支付开发交易通知实例

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

PHP 相关文章推荐
PHP中创建并处理图象
Oct 09 PHP
php5中类的学习
Mar 28 PHP
用php+javascript实现二级级联菜单的制作
May 06 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
php 删除cookie方法详解
Dec 01 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
Apr 26 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
Smarty缓存机制实例详解【三种缓存方式】
Jul 20 PHP
php慢查询日志和错误日志使用详解
Feb 27 PHP
php实现的debug log日志操作类实例
Jul 12 #PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 #PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 #PHP
php处理带有中文URL的方法
Jul 11 #PHP
PHP实现JS中escape与unescape的方法
Jul 11 #PHP
php处理复杂xml数据示例
Jul 11 #PHP
php的debug相关函数用法示例
Jul 11 #PHP
You might like
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
python实现用户登录系统
2016/05/21 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
大专生的学习自我评价
2013/12/04 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
《学会待客》教学反思
2014/02/22 职场文书
学习雷锋标语
2014/06/25 职场文书
见习报告的格式
2014/10/31 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
httpclient调用远程接口的方法
2022/08/14 Java/Android