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


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
Windows下的PHP5.0详解
Nov 18 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
php max_execution_time执行时间问题
Jul 17 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
php_pdo 预处理语句详解
Nov 21 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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
关于页面优化和伪静态
2009/10/11 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
vue+iview动态渲染表格详解
2019/03/19 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
python调用cmd命令行制作刷博器
2014/01/13 Python
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
python中import与from方法总结(推荐)
2019/03/21 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
error和exception有什么区别
2012/10/02 面试题
大学生实习自我鉴定
2013/12/11 职场文书
二年级数学教学反思
2014/01/21 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
Python进行区间取值案例讲解
2021/08/02 Python