支付网关思考_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 支付网关思考

支付网关思考

 2017/6/21 5:31:49  Wang.Crystal  程序员俱乐部  我要评论(0)
  • 摘要:支付网关思考目的支付网关是为了屏蔽各种支付工具之间的差异,对订单系统行程一个统一的,标准的接口。如下图所示思路订单系统的生成订单号,订单状态为待支付用户发起支付请求,支付网关负责交易支付请求,生成支付流水号。支付网关在完成支付请求后,负责更新订单状态。支付失败,订单状态不更新支付网关在像第三方支付时出现错误时重试三次事物补偿机制支付状态定时更新机制(每10分钟一次)对账每晚从第三方支付公司取出的对账文件,从订单统获取使用该公司的支付文件.分别比对总金额,发现平与不平,多交款,少缴款
  • 标签:

 支付网关思考

 

  • 目的

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

 

           

  • 思路

 

 

  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的值

 

上一篇: 初识Linq to Entity 下一篇: java的内存分配
  • 相关文章
发表评论
用户名: 匿名