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

 更新时间:2016年07月12日 09:38:49   投稿:lqh  
本文主要介绍如何使用 JS API支付时如何获得交易通知,并提供代码实例,希望对开发微信支付的小伙伴有所帮助

一、交易通知

用户在成功完成支付后,微信后台通知(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获取访问者浏览页面的浏览器类型

    最近做的项目需要根据用户浏览器的类型而做一些不同的处理,于是稍微研究了一下使用php判断浏览器类型的方法,下面这篇文章主要给大家介绍了php如何获取访问者浏览页面的浏览器类型,需要的朋友可以参考借鉴,一起来看看吧。
    2017-01-01
  • laravel框架邮箱认证实现方法详解

    laravel框架邮箱认证实现方法详解

    这篇文章主要介绍了laravel框架邮箱认证实现方法,结合实例形式详细分析了laravel框架邮箱认证功能的具体实现步骤及相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • laravel实现上传图片的两种方式小结

    laravel实现上传图片的两种方式小结

    今天小编就为大家分享一篇laravel实现上传图片的两种方式小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP新建类问题分析及解决思路

    PHP新建类问题分析及解决思路

    这篇文章给大家介绍php新建类相关问题分析及解决办法,涉及到php新建类相关知识,本文介绍的非常详细,非常具有参考借鉴价值特此分享供大家参考
    2015-11-11
  • PHP之使用swoole统计在线人数和ID案例讲解

    PHP之使用swoole统计在线人数和ID案例讲解

    这篇文章主要介绍了PHP之使用swoole统计在线人数和ID案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • yii2高级应用之自定义组件实现全局使用图片上传功能的方法

    yii2高级应用之自定义组件实现全局使用图片上传功能的方法

    这篇文章主要介绍了yii2高级应用之自定义组件实现全局使用图片上传功能的方法,结合实例形式分析了Yii2自定义组件实现图片上传的相关步骤与操作技巧,需要的朋友可以参考下
    2016-10-10
  • Laravel5.7框架安装与使用学习笔记图文详解

    Laravel5.7框架安装与使用学习笔记图文详解

    这篇文章主要介绍了Laravel5.7框架安装与使用学习笔记,结合图文形式详细讲解了Laravel5.7框架的安装、配置、组件、路由等基础与操作技巧,需要的朋友可以参考下
    2019-04-04
  • PHP 修改SESSION的生存时间案例详解

    PHP 修改SESSION的生存时间案例详解

    这篇文章主要介绍了PHP 修改SESSION的生存时间案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • PHP中字符与字节的区别及字符串与字节转换示例

    PHP中字符与字节的区别及字符串与字节转换示例

    在php中字符是可使用多种不同字符方案或代码页来表示的抽象实体。字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。本文还通过实例给大家介绍了php中字符串与字节转换示例,感兴趣的朋友一起看看吧
    2016-10-10
  • 浅谈php中curl、fsockopen的应用

    浅谈php中curl、fsockopen的应用

    下面小编就为大家带来一篇浅谈php中curl、fsockopen的应用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论