支付结果通知API
简要描述:
同步&异步回调均以get方式返回数据。
对后台通知交互时,如果平台收到商户的应答不是纯字符串success或超过5秒后返回时,平台认为通知失败,平台会通过一定的策略(通知频率为0/15/15/30/180/1800/1800/1800/1800/3600,单位:秒)间接性重新发起通知,尽可能提高通知的成功率,但不保证通知最终能成功。
商户系统必须能够正确处理重复的通知。由于存在重新发送后台通知的情况, 因此同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。
推荐的做法是, 当收到通知进行处理时, 首先检查对应业务数据的状态, 判断该通知是否已经处理过, 如果没有处理过再进行处理, 如果处理过直接返回结果成功。 在对业务数据进行状态检查和处理之前, 要采用数据锁进行并发控制, 以避免函数重入造成的数据混乱。
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
sErrorCode | 是 | string | 订单提交状态,1为成功,0为失败 |
bType | 是 | string | 返回方式,1为直接返回 2为异步返回。该参数方便商户只发起一个回调通知地址在一个页面做判断。 |
ForUserId | 是 | string | 商户编号,即商户会员ID |
LinkID | 是 | string | 商户订单流水号,商户发起支付时的订单号原样返回 |
Moneys | 是 | string | 支付金额,单位元 |
AssistStr | 否 | string | 附加字符串,商户网站传递过来的附加信息,将原样返回 |
sign | 是 | string | 32位MD5签名 |
签名字符串:
sErrorCode=&bType=&ForUserId=&LinkID=&Moneys=&AssistStr=&keyValue=商户密钥
注意:签名之前一定要先将字符串转换为小写后再签名;通过MD5(32位)方式签名(编码必须是gb2312,加密后转换为小写)。
签名举例:
> 待签名字符串:sErrorCode=1&bType=2&ForUserId=76342&LinkID=20180807122048488&Moneys=1&AssistStr=&keyValue=vtstvnh7SmFDAywWHmQfEtMGbiQlBpco
> 签名结果: 2a4a7a7c2be638caa5f770d2936eec21