支付网关思考

 

  • 目的

           支付网关是为了屏蔽各种 支付工具之间的差异,对订单系统行程一个统一的,标准的接口。如下图所示

 

           

  • 思路

 

 

  1.  订单系统的生成订单号,订单状态为待支付
  2.  用户发起支付请求,支付网关负责交易支付请求, 生成 支付流水号。
  3.  支付网关在完成支付请求后 ,负责更新订单状态。
  4.  支付失败,订单状态不更新
  5. 支付网关在像第三方支付时出现错误时重试三次
  • 事物补偿机制
  1.   支付状态 定时更新机制(每10分钟一次)

  • 对账     
  1.  每晚 从第三方支付公司取出的对账文件,从订单统获取使用该公司的支付文件.
  2. 分别比对总金额, 发现平与不平,多交款,少缴款。
  3. 相关异常订单存入异常订单表中,第二天人工处理
  • 接口设计     

             1. 订单状态同步

                      bool  UpdateOrderPaySatus(string orderId, int paySatas)

             2. 预支付请求签名设计(订单号,金额,Key ,Signature)

                  

  1. 把请求中的参数 除了Signature 外 按照参数名称进行正向排序
  2. 把所有参数名和参数值串在一起(不能有空格)
  3. 把后台设置的key值串接到“第二步”得到的字符串尾部(不能有空格)
  4. 采用MD5算法对“第三步”得到的字符串进行加密,生成Signature的值

 

 posted on 2017-06-20 16:38  Wang.Crystal  阅读(2490)  评论(5编辑  收藏  举报