3.3订单支付结果异步通知

SnapPay Developer Documents

3.3订单支付结果异步通知

描述

支付完成后,开放服务网关会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。



对后台通知交互时,如果开放服务网关收到商户的应答不是成功,开放服务网关认为通知失败,开放服务网关会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但开放服务网关不保证通知最终能成功。

(通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)注意:同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。



推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。特别提醒:商户系统对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。



接口地址

该链接是通过交易请求时提交的参数notify_url设置,如果链接无法访问,商户将无法接收到开放服务网关异步通知。



请求参数



公共参数

参见【请求报文 - 公共参数



业务参数

 

参数KEY

参数名称

类型

必要性

描述

method

请求方法

TEXT(128)

M

接口固定值为:pay.notify

merchant_no

商户号

TEXT(32)

M

商户号,在SnapPay入驻后生成的定常数字,用于标识商户身份

trans_no

交易号

TEXT(32)

M

开放服务网关平台交易号

out_order_no

商户订单号

TEXT(32)

M

商户系统内部订单号,只允许数字或英文字母。同一商户下订单号不能重复

trans_status

交易状态

TEXT

M

SUCCESS-交易成功

payment_method

支付方式

TEXT(16)

M

目前支持的支付方式有:

ALIPAY 支付宝

WECHATPAY 微信支付

UNIONPAY 中国银联

pay_user_account_id

买家账号标识

TEXT(32)

M

支付宝返回支付用户的ID,例如:

2088101117955611

 

微信返回商户appid下用户唯一标识,例如:wx37150978513678



银行卡交易返回加*脱敏的卡号信息,例如:

6226****1982

pay_user_account_name

买家账号名称

TEXT(32)

O

159****5620或zhangsan@sina.com注:支付宝支付返回账号登录名,微信支付时返回为空

trans_currency

标价币种

TEXT(32)

O

符合ISO 4217标准的三位字母代码,币种列表详见货币类型

exchange_rate

汇率

TEXT(16)

O

标价币种兑换支付币种汇率,非RMB标价时有值

trans_amount

交易总金额

AMOUNT

M

交易总金额

c_trans_fee

顾客承担手续费

AMOUNT

O

交易手续费由商家承担部分的金额

customer_paid_amount

顾客实付金额

AMOUNT

M

交易过程中从顾客资金账户中实际扣减的金额

discount_bmopc

支付通道商户优惠金额

AMOUNT

O

商户在支付通道的服务提供方(微信、支付宝等)的系统发布营销活动(优惠券、代金券、满减、单品优惠),用户支付时享受的金额减免

discount_bpc

支付通道优惠金额

AMOUNT

O

支付通道提供方(微信、支付宝等)给用户提供的优惠,在交易过程中直接减免,如:鼓励金、立减、红包等营销活动

trans_end_time

交易完成时间

DATE

M



attach

商户附加信息

JSON(127)

O

附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据

 

响应参数

商户处理后同步返回给开放服务网关的参数:

 

参数KEY

参数名称

类型

必要性

描述

code

返回状态码

TEXT(32)

M

固定值:0

 

 

Copyright reserved for SnapPay Inc 2019.