如果配置了交易退款HTTP联动设置,当完成对订单的退款后,原力支付服务会向指定的目标发送HTTP协议的通知数据,报告订单退款结果情况.如果要发起对一个交易的退款请在客户端中<交易记录查询>页面中操作
取决于您的HTTP联动设置中所配置的服务器地址和端口
请注意确保防火墙设置已经允许通过该网络地址端口进行访问.
您可在原力支付客户端<交易联动设置><HTTP联动设置>中配置此参数
取决于您的HTTP联动设置中所配置的服务器ACTION
您可在原力支付客户端<交易联动设置><HTTP联动设置>中配置此参数
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来进行验签