交易支付HTTP联动通知文档

返回文档首页

功能说明

如果配置了交易支付HTTP联动设置,当买家完成对订单货款支付后,原力支付服务会向指定的目标发送HTTP协议的通知数据,报告订单支付结果情况

通知服务器HOST

取决于您的HTTP联动设置中所配置的服务器地址和端口
请注意确保防火墙设置已经允许通过该网络地址端口进行访问.
您可在原力支付客户端<交易联动设置><HTTP联动设置>中配置此参数

通知服务器ACTION

取决于您的HTTP联动设置中所配置的服务器ACTION
您可在原力支付客户端<交易联动设置><HTTP联动设置>中配置此参数

通知方法: POST方法

通知参数

MerchantID 商户的标识,标识了该交易订单的所属商家.
更多商户标识可以在控制台<获得产品支付入口>中查看.
SubMerchantID 子级商户的标识,标识了发起交易的所属子级商户,返回ROOT表示这是由主商户发起的交易.
更多商户标识可以在控制台<获得产品支付入口>中查看.
TradeProduct 产品的标识,标识了该交易订单的对应产品.
如果是多产品合并支付的交易,则会返回多个产品标识,用","号分割
更多产品标识可以在控制台<获得产品支付入口>中查看.
TradeQuantity 产品的数量,指示了该交易订单的对应产品购买数量.
如果是多产品合并支付的交易,则会返回多个产品数量,用","号分割
TradeNo 此交易的订单号
TradeName 此交易的名称,UTF8+URLEncode编码
TradePromotion 此交易的优惠,UTF8+URLEncode编码
TradeAmount 指示了该交易订单的总金额,您总应该验证此交易金额是否正确无误,避免资损.
TradeBeginTime 指示了该交易的发起时间
TradeEndinTime 指示了该交易的完成时间
TradeStatus 指示了该交易的状态,可能值如下:
TRADE_WAIT --等待付款
TRADE_CANCEL --取消交易
TRADE_SUCCESS --交易成功,即已经付款
TRADE_FAILED --交易失败
TRADE_OTHER --其他
TradeGuestMobile 买家的手机号码,用于在交易时通过发送短信通知买家结果.
这个参数实际上是在创建交易时候传入的,如果未传则为空
TradeToken 如果交易成功,则返回此交易的凭据,这个凭据可在交易退款业务中使用
此凭据即支付宝微信的交易流水单号
TradeBuyer 买家的唯一标识
这个唯一标识将在转账或分账操作中被使用.
如有需要您应该维护此唯一标识与用户的对应关系
*可以创建一个0.1元的支付链接,当客户支付后即可获取自己唯一标识.
支付宝的唯一标识是2088开头的,微信的唯一标识是28位字符串
TradeCustomParam 交易的自定义数据,在这个参数中保存着您的业务参数.
如果您设置了交易完成时使用HTTP联动通知,则此参数会在
HTTP联动通知回调中进行回传.
TradeTimestamp 交易通知的时间戳
TradeSignMode 此交易通知的签名模式,支持的签名模式有如下:
NULL --无签名
MD5 --使用MD5进行简单签名
RSA_SHA256 --使用基于RSA非对称加密的SHA256签名算法,非常安全
TradeSignature 此交易通知的签名数据体.签名数据体是用商户的私钥对通知数据进行签名的,
只有商户对应的公钥才能验签通过,具体验签方法请看交易MD5验签算法
交易RSA_SHA256验签算法

通知应答

如果已经成功处理了此通知,您应该返回HTTP状态码200和OK(Response.Write OK)
如果未返回如上应答,原力支付服务会在5分钟之内以10秒一次的间隔重新发送此通知,直到通知被正确响应为止

备注

此通知用于在交易完成时候向您的其他业务系统发送通知,以便能够进一步对交易支付进行处理.
交易通知的数据分为两种格式,这取决于您在HTTP联动设置中所设置的格式.
一种是HTTP FORM表单格式(application/x-www-form-urlencoded),一种是JSON格式(application/json)

当交易成功或失败时,可能会收到多次相同TradeNo交易完成通知,所以您应该检查此通知的TradeNo是否之前已经处理过了,避免多次收单发货而导致资损. 注意在接收回调之前请确保防火墙访问放行,系统会以Referer:FORCEPOLYPAY投递回调通知

(重要)为了保证交易通知的安全性,防止其他人假冒原力支付系统向您发送支付成功的通知, 您应该通过TradeSignMode,TradeSignature对通知数据进行验签.具体验签实现方法请阅读下面<验签算法>说明.
*您还应该总是验证TradeAmount此交易金额是否正确无误,避免交易金额被修改少付导致资损.


另外您也可以启动支付服务后通过访问http://host <支付服务地址端口>/tradesignpage.csp 手工输入参数进行验签,同时可以观察验签步骤.此外原力支付系统还提供了<通知验签接口> 您可以通过使用此接口来进行验签.
您也可以选择使用ForcePaySDK,调用本地接口来完成验签