一、非微信类渠道:
①、首次请求 Ping++ 返回的 Charge 对象,在接下来的 1 分钟内如果请求上来还是相同的订单信息( 6 要素:order_no、channel、amount、subject、body、appid 不变),那么 Ping++ 还是返回首次请求的 Charge ;
注:如果在 1 分钟之内,使用支付宝渠道花呗分期时,更换了 extra 的 hb_fq_num 和 hb_fq_seller_percent 参数或者其中之一,则会返回全新的 Charge 。
②、如果超过 1 分钟,再次请求 Ping++ 则返回全新的 Charge 。
③、线下扫码通道:isv_qr / isv_scan 渠道,超过 1 分钟后,不可用相同的订单信息发起创建请求 ;isv_wap 渠道在打开链接后,再超过 1 分钟后,不可用相同的订单信息发起创建请求,若未打开链接,则参考 ①、② 步骤说明。
二、微信类渠道:
对于微信相同的订单号请求,除微信 H5支付(wx_wap)、付款码支付(wx_pub_scan/cb_wx_pub_scan) 渠道外,Ping++ 做了 2 小时的缓存处理,也就是说在 2 小时内,只要是相同信息的订单请求,Ping++ 返回给您的是我们缓存你第一次请求拿到的 Charge 的信息(注意:2 小时内是要相同的订单信息, 6 要素:order_no、channel、amount、subject、body、appid 不变);
超过 2 小时的话,若使用相同的订单信息,Ping++ 是直接去请求微信的,那么微信这里就会报错,因为微信不允许相同订单号的请求。
注:
1、wx_wap 渠道 Ping++ 的缓存时间为 5 分钟,超过 5 分钟,则不可使用相同订单信息发起创建请求。
2、wx_pub_scan/cb_wx_pub_scan 渠道 Ping++ 缓存时间为 1 分钟,如果超过 1 分钟,再次请求 Ping++ 则返回全新的 Charge 。
3、order_no 在微信同一个商户号下必须唯一;如:微信公众号和微信公众号扫码渠道是属于同一个商户号下的,则不可使用相同的 order_no 创建支付请求。