文档中心 > 手机网站支付

商户处理注意事项

更新时间:2016/05/30 访问次数:78709

当支付宝处理完成后,支付宝会把处理结果以当前页面跳转同步通知和支付宝服务器主动通知商户网站两种形式,反馈给商户网站。商户可以从页面跳转同步通知页面或者从服务器异步通知页面中获得这些信息,并且在验证通过的判断中增加商户的业务逻辑处理程序。 商户对获得的数据必须进行如下处理。

验证签名

首先必需验证签名(参见本文档“附录:签名与验签”),然后验证是否是支付宝发来的通知。

验证是否是支付宝发来的通知

该处的验证是指,对支付宝通知回来的参数notify_id合法性验证。这个验证动作实际上是调用了支付宝的另一个接口“通知验证接口(notify_verify)”来完成的。这个接口请求时使用的是模拟远程HTTP提交,回调模式是“直接在当前页面输出结果”,返回的数据是纯文本格式。

请求的完整链接如下:

https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354&notify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg

得到的处理结果有两种:

  • 成功时:true
  • 不成功时:报对应错误

业务数据处理注意事项

商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号,并判断total_fee是否确实为该订单的实际金额(即商户订单创建时的金额),同时需要校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email),上述有任何一个验证不通过,则表明本次通知是异常通知,务必忽略。在上述验证通过后商户必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。在支付宝的业务通知中,只有交易通知状态为TRADE_SUCCESS或TRADE_FINISHED时,支付宝才会认定为买家付款成功。 如果商户需要对同步返回的数据做验签,必须通过服务端的签名验签代码逻辑来实现。如果商户未正确处理业务通知,存在潜在的风险,商户自行承担因此而产生的所有损失。

  • 交易状态TRADE_SUCCESS的通知触发条件是商户签约的产品支持退款功能的前提下,买家付款成功;
  • 交易状态TRADE_FINISHED的通知触发条件是商户签约的产品不支持退款功能的前提下,买家付款成功;或者,商户签约的产品支持退款功能的前提下,交易已经成功并且已经超过可退款期限;
  • 交易成功之后,商户(高级即时到账或机票平台商)可调用批量退款接口,系统会发送退款通知给商户,具体内容请参见批量退款接口文档;
  • 当商户使用站内退款时,系统会发送包含refund_status和gmt_refund字段的通知给商户。

对于退款接口,以异步通知中的退款处理结果业务数据为准。 如果商户未正确处理业务通知,存在潜在的风险,商户自行承担因此而产生的所有损失。

  • 退款接口只支持https请求;
  • 退款接口不支持退分润;
  • 同一批次中不允许包含两条交易号相同的退款明细。

FAQ

关于此文档暂时还没有FAQ
返回
顶部