`

支付宝支付与微信支付服务端回调notify_url数据的区别

阅读更多
支付宝和微信的回调地址

notifyUrl = RequestUrl.BASE_URL+"order/order_payment"+"?order_code="+orderCode;
服务器端是PHP开发,因此此处以PHP为例:

支付宝接收回调的方法

/**

* sCreater

* function:订单支付完成后回写数据库(支付宝支付回调)

* @return json

*/

public function actionOrder_payment(){

$getData = $this->_requestData;

parent::write_log('order/order_payment',$getData);

if (empty($getData['order_code'])){

$data = array(

'error_code' => 1,

'error_msg' => '参数错误',

'data' => ''

);

parent::json_encode($data);

}

if (!empty($getData['trade_status']) || $getData['trade_status'] =='TRADE_SUCCESS') {

LinshiOrderMaster::confirmPayment($getData['order_code'],$getData['price'],'2',$getData['trade_no']);

$data = array(

'error_code' => 0,

'error_msg' => '支付成功',

'data' => ''

);

parent::json_encode($data);

}

}

支付宝服务器返回的数据

{

"_id": ObjectId("55ec4550c6fdc2f03d8b48c5"),

"name": "order/order_payment",

"server_url": "http://api.xxx.**/v1.5.4/order/order_payment",

"accept_data": {

"order_code": "15090604451164",

"discount": "0.00",

"payment_type": "1",

"subject": "陈*梅",

"trade_no": "2015090600001000310060229256",

"buyer_email": "*********@qq.com",

"gmt_create": "2015-09-06 18:29:13",

"notify_type": "trade_status_sync",

"quantity": "1",

"out_trade_no": "090618284176257",

"seller_id": "2088021159681245",

"notify_time": "2015-09-06 21:53:20",

"body": "课程支付",

"trade_status": "WAIT_BUYER_PAY",

"is_total_fee_adjust": "Y",

"total_fee": "0.01",

"seller_email": "xxxpay@xxx.biz",

"price": "0.01",

"buyer_id": "2088302454945312",

"notify_id": "4e25737fd44a50070bbaa6f2eac2c39e3q",

"use_coupon": "N",

"sign_type": "RSA",

"sign": "******4GyXJaugFZqoiRQ4DE5VOn/EQjohiCulI5jRuogGiFb7ncZv/FjgZVD00QrnDGxYT8+XUAKThAQ01kCEHJJMLKHMxix9NXdeh8thXcDRBX/MJOnc4C/J8tk+U1D4VwkL1c [...]"

},

"header": [

],

"time": "21:53:20"

}

微信接收回调方法

/**

* sCreater: miki

* function:订单支付完成后回写数据库(微信支付回调)

* @return json

*/

public function actionOrder_wx_payment(){

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

$getData = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

parent::write_log('order/order_wx_payment',$getData);

if (empty($getData['order_code'])){

$data = array(

'error_code' => 1,

'error_msg' => '参数错误',

'data' => ''

);

parent::json_encode($data);

}

if (!empty($getData['result_code']) || $getData['result_code'] =='SUCCESS') {

LinshiOrderMaster::confirmPayment($getData['order_code'],$getData['total_fee']/100,'1',$getData['transaction_id']);

$data = array(

'error_code' => 0,

'error_msg' => '支付成功',

'data' => ''

);

parent::json_encode($data);

}

}

微信接口返回的数据

{

"_id": ObjectId("55ed2bcdc6fdc2c83d8b4e79"),

"name": "order/order_payment",

"server_url": "http://api.xxx.***/v1.5.4/order/order_payment",

"accept_data": {

"appid": "wx8be381be5d594578",

"bank_type": "COMM_DEBIT",

"cash_fee": "1",

"fee_type": "CNY",

"is_subscribe": "N",

"mch_id": "1240212802",

"nonce_str": "9a3d458322d70046f63dfd8b0153ece4",

"openid": "*********YfgoQPliYWg",

"order_code": "15090604453558",

"out_trade_no": "5d79099fcdf499f12b79770834c0164a",

"result_code": "SUCCESS",

"return_code": "SUCCESS",

"sign": "D2AD1EE0F4890FA23B424AC2A94E0CE4",

"time_end": "20150907141237",

"total_fee": "1",

"trade_type": "APP",

"transaction_id": "1006410556201509070811059912"

},

"header": [

],

"time": "14:16:45"

}

注:

1、回调地址之所以加了order_code="+orderCode,主要是便于更新订单的状态,并且支付宝和微信都会自动将我们带的参数插入到原生数据一起返回给我们的服务端;

2、支付宝回调的方法只是普通的post接收即可;

3、微信回调的方法用的关键代码在 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

(1)支付成功通知的内容可以使用 $_GET 获取订单信息

(2)接收微信后台发送过来的消息,该消息数据结构为XML,不是php默认的数据类型

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

(3)使用simplexml_load_string() 函数将接收到的XML消息数据载入对象$postStr中。 $getData = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
分享到:
评论

相关推荐

    springboot对接微信小程序支付以及回调详细代码

    springboot对接微信小程序支付以及回调详细代码 非常详细,完整流程代码 拿走不谢 亲测可用

    php进行支付宝开发中return_url和notify_url的区别分析

    在支付宝处理业务中return_url,notify_url是返回些什么状态呢,我们要根据它来做一些处理就必须了解return_url,notify_url的区别,下面我就来给大家介绍介绍. 问题描述: 我在处理支付宝业务中出现过这样的问题,付费...

    Xposed hook 微信 支付宝 QQ 支付通知 含客户端服务端源码和相关文章

    点击菜单,点重启,VirtualXposed配置完毕,打开收款助手软件,点程序配置,设置好异步、同步通知地址和signkey,同步地址就是对应服务器上payresult.php这个,异步地址对应服务器上notify.php,signkey必须和php里...

    微信在线支付视频教程 下载

    04_异步请求处理notify_url_下载 05_同步跳转returnUrl_下载 06_查询订单接口调用_下载 07_关闭订单接口调用_下载 08_申请退款接口调用_下载 09_退款查询接口调用_下载 10_下载对账单接口调用_下载 11_下载资金账单...

    微信在线支付

    04_异步请求处理notify_url_下载 05_同步跳转returnUrl_下载 06_查询订单接口调用_下载 07_关闭订单接口调用_下载 08_申请退款接口调用_下载 09_退款查询接口调用_下载 10_下载对账单接口调用_下载 11_下载资金账单...

    微信H5支付修改下配置(APPID、商户号等)即可使用

    微信H5支付,微信浏览器支付,微信支付 1, 修改wxpay.php文件的参数 define('APPID','APPID'); define('APIKEY','商户安全密钥'); define('MCH_ID','商户ID'); define('NOTIFY_URL','http://你的域名/return_url....

    支付宝微信银联支付API调用封装源码

    2、微信扫码支付API封装,生成微信支付的二维码地址 3、微信APP支付API封装 4、银联支付API封装 按照实例配置好各个API的参数即可。 //服务器异步通知页面路径 string notify_url = ""; //页面跳转同步通知页面...

    拒绝重复造轮子-微信蓝果小镇商城小程序前后台完整版

    2、App/Api/Conf/config.php 微信小程序的appid、secret、mchid、key、notify_url,SELF_ROOT的参数修改; 3、ThinkPHP\Library\Vendor\wxpay\lib\WxPay.Config.php 微信小程序的appid、appsecret、mchid、key...

    notify_url.asp

    notify_url.asp

    基于小程序实现微信支付功能设计源码分享

    小程序微信支付「后端商户系统」。配合 LeanCloud 小程序 SDK 快速实现小程序微信支付功能。 ### 配置环境变量 开始之前,请确保已经按照下面的步骤完成了环境变量的配置: 1. 进入应用控制台 - 云引擎 - 设置 2. ...

    微信小程序-LeanCloud 小程序微信支付后端示例

    小程序微信支付示例 小程序微信支付「后端商户系统」。配合 LeanCloud 小程序 SDK 快速实现小程序微信支付功能。 部署 配置环境变量 开始之前,请确保已经按照下面的步骤完成了环境变量的配置: 进入应用控制台 - ...

    node js 微信支付退款aes-256-ecb解密

    微信支付退款node js 解密算法,aes-256-ecb工具类实现

    微信app支付java服务端源码

    使用的时候注意修改资源文件中的 resources/sys.properties #weixin apy appid=你们的appid mch_id=你们的mch_id notify_url=你们的回调地址

    智简魔方财务系统V3.4.8个人支付宝、微信收款接口插件

    如果您看完说明仍不明白接口如何安装使用,请与QQ:40386277联系协助安装 1、到www.zfbjk.com网站注册一个用户,并下载“支付宝免签约即时到帐辅助”软件,关于软件的介绍请参考网站http://www.zfbjk.com上的文章...

    微信支付、公众号支付、微信支付接口

    1、微信支付功能 2、拿过去就可以运行,不能运行的退积分,个人整理了好几天,按照你的微信支付的配置到我的MPConfigUtils.java里面,拿过去就可以支付。 3、相关的工具类都在里面这是一个完成的project

    微信端api支付

    'notify_url' => $this->config['notify_url'], 'return_url' => $this->config['return_url'], 'out_trade_no' => $vo->getOrderNo(), 'subject' => $vo->getTitle(), 'body' => $vo->getBody(), 'total_fee'...

    支付宝接口程序asp源码

    return_url 和 notify_url 的区别及其操作. 买家付款成功后,如果接口中指定有return_url ,买家付完款后会跳到 return_url所在的页面,这个页面可以展示给客户看,这个页面只有付款成功才会跳转. notify_url: 服务器...

    支付宝即时到账系统java程序开发包

    String ItemUrl=Payment.CreateUrl(paygateway,service,sign_type,out_trade_no,input_charset,partner,key,show_url,body,total_fee,payment_type,seller_email,subject,notify_url,return_url);

Global site tag (gtag.js) - Google Analytics