当前位置: 首页 > 后端技术 > PHP

海外电商支付网关避坑攻略

时间:2023-03-30 02:11:10 PHP

前言嗨,朋友们,我是CrazyCodes。在上一篇文章中,我大致描述了支付系统开发的基本流程。相比之下,虽然国内的流程差不多,必要的步骤还是比较齐全的,技术水平也比较高,但是相比之下,第三方支付对接海外并没有我们想象的那么顺畅。本章还是按照正常流程,支付、通知(包括同步通知和异步通知)、查询、退款、对账等基本步骤来说明与国外的不同。建议配合支付系统开发基本流程一文了解区别。以上支付是一个完整的支付流程。与境外支付的特殊性相比,有以下几点。三方确认支付不一定是实时的。这里不是实时的。它代表的不是分钟,可能是小时,也可能是天。我不知道为什么延迟这么大。可能是链路太长,也可能是技术发展水平的问题。在英国、法国等相对发达的国家,这个过程一般是很正常的。比如台湾的超市支付,可以理解为一种线下支付方式。大致流程是用户在网站下单后,我们只能给用户提供一个支付码,用户需要拿着这个支付码到线下门店进行支付,最终完成交易。在我们支付流程的这种方式中,只能完成一个预付费的功能,支付流程是离线的。其次,我们不要相信任何系统和用户的操作,更不要相信海外,更难追回货物或资金,因此需要进行各种验证。有时境外第三方系统不具备验证功能,可能会出现欺诈行为。我们可以通过第三方提供的附加参数(类似于订单描述)添加校验码。当然,如果你连这个都没有,那就只能认命了。最后还有一个关于订单号的问题,就是部分三方系统的订单号可能不支持幂等性,也就是说当用户使用订单号发起支付,支付失败时,会失败用户再次使用该订单号发起支付。遇到这种情况,我们可以采用一个订单号对应多个交易号的方式来解决,即每次发起后生成一个唯一的交易号,代替订单号进行支付。通知付款这么难,通知更难。列举几个核心差异,首先,可能没有通知。如果没有通知,我们只能通过主动查询获取支付结果。也可能是缺少一种类型的通知,缺少同步通知,或者异步通知。一般缺少异步通知。如果你缺少异步通知,如果你的系统认为你可以完全信任同步通知,你可以选择性地忽略这个缺陷。同步+主动查询,个人认为可以选择性忽略。如果没有主动查询接口,那么就需要询问三方系统是否可以提供对账接口。总而言之,只有信息对称才能确认付款。最后一个是最奇怪的。虽然是在线支付流程,但三方系统可能不会主动查询接口、同步通知、异步通知、对账接口。你没看错,除了付款,什么都没有。这种一般情况下,三方一般都会给你提供一个商户后台,你可以手动下载账单,然后你只能通过导入表单的方式来验证,类似于国内的银行卡转换或者商对-商业。在退款经历了复杂多变的支付之后,我们来看看退款的一些区别。第一,没有退款接口,这意味着用户只能去第三方退款,第三方会从对账单状态中反映一个订单。二是可能没有异步通知退款,只能通过主动查询的方式来验证订单状态,这又回到了没有接口的问题。如果没有主动查询界面,上次我们手动去商户后台导出。然后导入到系统中。最后,还有一种最原始的方式,叫做金融支付(意思是没有自动退款流程)。对账历经千辛万苦,终于到了对账的阶段。一般有以下区别(自求福型)没有任何可以提供的单据(自营型)三方系统提供可以导出的商户后台。填表对账(半自动型)分为两种。提供FTP下载报表,另一种是定期通过电子邮件发送报表。原则上还是要谨慎对账,尽量在用户支付的时候把风险挡住。致谢感谢您阅读到这里,希望本文能对您有所帮助,谢谢。