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


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 相关文章推荐
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php获取数组中重复数据的两种方法
Jun 28 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
php输入流php://input使用浅析
Sep 02 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 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
中国第一家无线电行
2021/03/01 无线电
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
php文件上传简单实现方法
2015/01/24 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
python中JWT用户认证的实现
2020/05/18 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
讲文明树新风演讲稿
2014/05/12 职场文书
家长会欢迎标语
2014/06/24 职场文书
员工试用期自我评价
2014/09/18 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
捐款仪式主持词
2015/07/04 职场文书
2016年元旦主持词
2015/07/06 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
导游词之南京中山陵
2019/11/27 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript