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


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代码简化
Feb 08 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
php实现telnet功能示例
Apr 08 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
PHP图像处理类库MagickWand用法实例分析
May 21 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
php生成验证码函数
Oct 20 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
详解php实现页面静态化原理
Jun 21 PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 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
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
php压缩文件夹最新版
2018/07/18 PHP
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
JQuery live函数
2010/12/24 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
Python实现提取文章摘要的方法
2015/04/21 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
python 基于opencv操作摄像头
2020/12/24 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
计算机网络毕业生自荐信
2013/10/01 职场文书
大学生村官工作感言
2014/01/10 职场文书
社区母亲节活动方案
2014/03/05 职场文书
科学发展观活动总结
2014/08/28 职场文书
召开会议通知范文
2015/04/15 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
详解用Python把PDF转为Word方法总结
2021/04/27 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers