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


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 相关文章推荐
frename PHP 灵活文件命名函数 frename
Sep 09 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 24 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获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
splice slice区别
2006/10/09 Javascript
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
js运动应用实例解析
2015/12/28 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
Python打包可执行文件的方法详解
2016/09/19 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
会议室标语
2014/06/21 职场文书
基层工作经验证明样本
2014/11/16 职场文书
考试作弊检讨
2015/01/27 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书