接口调用

集成者需要对以下接口进行集成,但对于接口的调用顺序,支付宝不做任何建议。

支付接口(alipay.acquire.overseas.spot.pay)

支付基础知识

  1. 对于支付宝条码支付,默认支付超时时间为3分钟,从交易被创建时开始计时。
  2. 对于每笔交易,存在中间状态WAIT_BUYER_PAY和两个最终状态TRADE_SUCCESS和TRADE_CLOSED。商户必须确保每笔交易都处于最终状态。此外,在商户系统、收银端和支付宝端,交易状态必须一致。

图片1.png

支付方式

条码支付中存在以下两种模式。商户必须整合这两种模式,以确保所有付款都能顺利收取:

  • 离线模式:在此模式下,不需要用户端有网络连接。扫描条码后,可以调用付款接口来完成付款。
  • 离线转在线模式:出于安全原因或监管要求,可能会提示用户输入支付密码或等效密钥(touchID、faceID等)以完成支付。用户端需要网络连接。在离线转在线模式下,支付界面首先返回未知结果。商户收到结果后,必须调用查询接口对支付结果进行轮询。

支付宝内部交易默认3分钟后超时。因此,如果交易状态在3分钟后仍为WAIT_BUYER_PAY,则交易将自动关闭。然而,在现实生活中,收银员可能不会等待长达3分钟。商家可以根据具体业务需求设置不同的超时时间。例如,商家可以将超时时间设置为60秒。在此期间,商户系统将通过查询接口每3-5秒轮询一次支付结果。如果收到TRADE_SUCCESS或TRADE_CLOSED,收银员将收到此结果通知。如果60秒后收到的结果仍是WAIT_BUYER_PAY,商户必须调用取消接口以强制交易结束。    


注意:

有时,收银员可能无法启动自动更正。在这种情况下,必须在合作伙伴的系统中配置一个后台作业,以便对状态为WAIT_BUYER_PAY的交易执行自动更正,并且超时时间可以比收银端设置的超时时间稍长。


付款信息

根据支付宝的最新规则,必须传递二级商户ID (secondary_merchant_id)和商店ID (store_id)信息以标识交易的位置。

  • secondary_merchant_id字段表示收单机构的二级商户或直接集成商户的子品牌。
  • store_id字段表示商家拥有的商店的序列号。

有了partner_id、secondary_merhcant_id和store_id字段,商店可被唯一识别。

撤销接口(alipay.acquire.cancel)

通过调用撤销接口,您仅能撤销北京时间当天的交易。对于在截止时间前后进行的交易,有15分钟的缓冲区来取消该交易。

在下列情况下,撤销接口将返回success:

  • 未成功创建交易。
  • 交易已创建但未支付。在这种情况下,交易将强制关闭,客户无法继续支付。
  • 交易已支付。在这种情况下,交易将被退回,交易状态将更改为TRADE_CLOSED。

退款接口(alipay.acquire.overseas.spot.refund

商户必须根据实际业务需求集成全额退款或部分退款功能,然后相应更新相应的对账流程。

支付宝支持异步退款和同步退款两种退款方式,由is_sync参数的值指定具体退款方式:is_sync值为Y, 则执行同步退款,is_sync值为N, 则执行异步退款。

  • 同步退款:支付宝实时退款,并立即返回结果。00:00 - 01:30 不执行退款。
  • 异步退款:支付宝将首先响应成功,这意味着支付宝已记录退款请求并接受退款请求。退款交易将在北京时间交易日当天23:00:00~00:00:00以及次日01:30:00-05:00:00时刻进行批处理。重试直到成功。

查询接口(alipay.acquire.overseas.query)

对于result_coode为UNKNOW的付款,必须启动查询过程以获取实际交易状态。在调用查询接口之前,商家可以通过后台系统,或者通过扫描用户支付宝应用或收据上的代码来查看交易详情。

对于状态为WAIT_BUYER_PAY的交易,可等待直到交易超时(超时时长默认为3分钟),然后再次调用查询界面以获取最终交易状态。