如何高效对接第三方支付

时间:2022-01-14 来源:未知网络 作者:996建站网

本文主要分享如何对接第三方支付,以及在生产上实际遇到的一些问题,避免大家重复踩坑。

一、五个接口

先简单阐述一下,对接第三方支付时,需要对接如下5个核心接口

1.发起支付

该接口主要用于从第三方获取token,当用户跳转到第三方网站进行支付时,第三方支付公司用来校验是否是合法的支付请求

2.支付结果查询

商户用该接口来判断支付结果成功与否

3.退款

商户用该接口进行退款

4.退款查询

商户用该接口来判断退款结果成功与否

5.获取支付成功订单列表接口

商户用该接口获取第三方某日所有成功支付订单列表,用于对账时使用

二、四个流程

只需要对接完如下四个流程,便可完成第三方支付的对接。

  • 发起支付请求
  • 同步回调和异步回调
  • 退款和退款查询
  • 对账

1.发起支付请求

下面的时序图中有几个名词,此处先给大家介绍一下

  • 电商系统:海外商城的服务系统,负责提供整个购物流程
  • 支付网关:我们将支付抽离为一个单独的系统,该系统用来对接所有支付

时序图

如何高效对接第三方支付插图

伪代码

#商城系统
function pay(){
    #1.请求支付网关,获取发起支付必要信息(token,跳转url)
    $res = $this->payRequest($orderInfo,$sign);
    #2.根据返回结果,跳转到第三方,进行支付
    redirect($res['url']);
}

#支付网关
function payment(){
    #1.检查请求数据的签名
    $this->checkSign();
    #2.初始化订单数据,将传入参数格式化为需要的结构
    $this->initData();
    #3.参数检查
    $this->checkParam();
    #4.记录请求日志
    $this->savePayLog();
    #5.发起支付
    #5.1不是首次支付,则检查是否支付成功过
    if(!$isFirstRequest){
        $this->checkPaymentStatus();
    }
    #5.2生成新的支付号
    $transactionCode = $this->getNewTransactionCode();
    #5.3请求第三方,获取token,跳转链接等信息
    $res = $this->pay($transactionCode);
    return $res;
}

如何高效对接第三方支付插图1

微信扫一扫 关注公众号

微信扫一扫 使用小程序

百度扫一扫 使用小程序