交易退款HTTP联动通知文档

返回文档首页

功能说明

如果配置了交易退款HTTP联动设置,当完成对订单的退款后,原力支付服务会向指定的目标发送HTTP协议的通知数据,报告订单退款结果情况.如果要发起对一个交易的退款请在客户端中<交易记录查询>页面中操作

通知服务器HOST

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

通知服务器ACTION

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

通知方法: POST方法

通知参数

MerchantID 商户的标识,标识了该交易订单的所属商家.
更多商户标识可以在控制台<获得产品支付入口>中查看.
SubMerchantID 子级商户的标识,标识了发起交易的所属子级商户,返回ROOT表示这是由主商户发起的交易.
更多商户标识可以在控制台<获得产品支付入口>中查看.
TradeProduct 产品的标识,标识了该交易订单的对应产品.
如果是多产品合并支付的交易,则会返回多个产品标识,用","号分割
更多产品标识可以在控制台<获得产品支付入口>中查看.
TradeQuantity 产品的数量,指示了该交易订单的对应产品购买数量.
如果是多产品合并支付的交易,则会返回多个产品数量,用","号分割
RefundNo 此退款操作的退款号
RefundReason 此退款操作的退款原因,UTF8+URLEncode编码
TradeNo 此退款操作对应的订单号
RefundAmount 指示了此交易的请求退款金额
RefundActual 指示了此交易的实际退款金额,您总应该验证此退款金额是否正确无误,避免资损.
RefundBeginTime 指示了该退款的发起时间
RefundEndinTime 指示了该退款的完成时间
RefundStatus 指示了该退款的状态,可能值如下:
REFUND_WAIT --等待退款
REFUND_CANCEL --取消退款
REFUND_SUCCESS --退款成功,即已经退款
REFUND_FAILED --退款失败
REFUND_OTHER --其他
RefundCustomParam 退款的自定义数据,在这个参数中保存着您的业务参数.
如果您设置了退款完成时使用HTTP联动通知,则此参数会在
HTTP联动通知回调中进行回传.
RefundTimestamp 退款通知信息的时间戳
RefundSignMode 此退款通知的签名模式,支持的签名模式有如下:
NULL --无签名
MD5 --使用MD5进行简单签名
RSA_SHA256 --使用基于RSA非对称加密的SHA256签名算法,非常安全
RefundSignature 此交易通知的签名数据体.签名数据体是用商户的私钥对通知数据进行签名的,
只有商户对应的公钥才能验签,要获得商户公钥,请在<商户管理>页面中导出.
具体验签方法请看<验签算法>说明.

通知应答

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

备注

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

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

为了保证交易通知的安全性,防止其他人假冒原力支付系统向您发送退款成功的通知,
您应该通过RefundSignMode,RefundSignature对通知数据进行验签.具体验签实现方法请阅读下面<验签算法>说明.
另外您也可以启动支付服务后通过访问http://<支付服务地址端口>/refundsignpage.csp 手工输入参数进行验签,同时可以观察验签步骤.此外原力支付系统还提供了<通知验签接口> 您可以通过使用此接口来进行验签.
您也可以使用ForcePaySDK调用本地API来进行验签