zoukankan      html  css  js  c++  java
  • 支付原理

    一、银联支付提交原理:

    1、封装支付请求参数

    2、将参数验证签名,以html表单形式提交给银联支付接口

    以html表单提交有什么好处?

    将方便提交参数

    二、同步回调和异步回调通知

         1、同步回调(前台通知):

          第三方支付系统以浏览器重定向形式将支付结果给商户端

                          作用:提示给用户在银联支付系统中,已经支付成功。

            2、异步回调(后台通知):

                         第三方支付系统使用类似于HttpClient技术调用商户接口进行通知。

                          作用:将银联支付安全的形式发送给商户端,进行修改对应的订单状态。

                    注意:异步通知是修改订单状态

    思考问题:

    1、在第三方支付平台(银联、支付宝、微信支付)支付结果是如何通知给商户端

          第三方支付平台通过httpclient技术将支付结果异步通知给商户端

    2、支付系统分布式式事物问题存在原因:

       用户在银联系统中,支付完成之后,如何把结果通知给商户端:第三方支付平台通过httpclient技术将支付结果异步通知给商户端

     3、  跨系统中如何解决分布式事物问题呢?

           采用最终一致性问题 双方可以短暂不一致,但是最终一定实现一致性问题。采用通知补偿性

    验证签名原理:MD5 加密加盐 不可逆

    验证签名防止数据被篡改

    加密是防止抓包获取明文的数据 可逆。

    支付流程:

    1、订单服务调用支付服务 生成支付令牌(userId、订单号码、支付金额)

    2、订单服务获取支付令牌,在使用订单web传递Token形式跳转到支付web。

    预提交待支付记录保证参数的安全问题。

    将不同的接口执行地址存放到数据中,统一使用java反射机制执行方法。

    整体实现流程:

    1. 支付服务需要提供创建支付接口 ,传递参数 userid、orderid、金额。
    2. 使用支付令牌查询支付交易信息

    注意:订单id 支付id

    整体实现流程:

    1. 支付服务需要提供创建支付接口 ,传递参数 userid、orderid、金额。
    2. 使用支付令牌查询支付交易信息

    注意:订单id 支付id

    四、分布式事务解决方案

    LCN MQ 适合于内部系统实现服务指间分布式事务解决方案

    如果产生跨平台之间分布式事务如何解决呢? 最终一致性概念

    第三方系统中如何商户端没有及时响应状态码给第三方支付系统,这时候第三方系统采用补偿和重试机制。

    支付回调中需要考虑的问题:

    1. 在网络延迟情况下,回调接口出现重试时,如何保证接口幂等性问题。

         (全局id) 重试机制是间隔性。

    1. 在网络延迟情况下,第三方系统没有及时的将支付结果通知给商户端,存在支付状态不一致时,如何解决?

    解决方案:调用第三方系统主动查询支付状态

    1. 商户系统回调接口中,如果存在代码问题,或者是商户系统宕机,导致第三方支付系统一直在重试? 最后放弃重试 如何解决呢?
      1. 手动补偿机制+日志记录 主动调用第三方接口查询
      2. 写一个定时Job,每天定时检查数据,主动调用第三方接口查询,修改状态码

    4.支付金额与商品金额如果不一致时,如何处理

    在异步回调中,使用预支付金额与回调真实支付金额进行比对,如果不一致的话,说明该交易信息存在异常。

    使用日志+对账核查。

    1. 支付服务如何与其他系统保证分布式事务问题

    采用第三方支付流程 实现补偿和重试机制遵循最终一致性 Base理论和CAP理论。

    1. 与内部系统中出现分布式事务问题

    LCN、 MQ 、TCCC

    相同点: 最终一致性问题。

  • 相关阅读:
    mysql 创建++删除 数据表
    mac 配置apache
    mac 安装mysql
    mysql 创建++删除 数据库
    配置默认编码为utf8
    mysql 添加用户
    mysql 查看库结构---查看表结构
    centos7
    centOS 7 安装mysql
    修改字符集
  • 原文地址:https://www.cnblogs.com/cxyyh/p/11080018.html
Copyright © 2011-2022 走看看