几种主流支付方式详解

几种主流支付方式详解


1. 微信支付 和 支付宝支付

废话很少说, 下图是微信支付官方的支付流程图:前端

微信支付的官方Demo就不吐槽了, 可是不能否认, 这个流程图画的仍是至关不错的, 很是的详细, 认真弄懂这张图, 那么你对支付的大概流程就已经差很少了解了. 支付宝的支付过程和微信支付的过程大致上是类似的, 彻底能够用相同的处理方式来处理.git

在咱们的项目中, 咱们是这么来处理的:github

无论是微信支付仍是支付宝支付, 咱们都向服务器请求一次数据, 参数中标示此次要发起的支付动做是微信支付仍是支付宝支付, 服务器获得消息后, 若是是你微信支付, 那么就按照微信支付的流程向微信支付服务器请求数据, 返回给用户端prepay_id, sign等信息, 用户端根据prepay_id和sign等信息调起移动端的微信客户端, 进入支付页面进行支付操做, 支付完成以后跳回咱们的用户端, 用户端根据回调信息, 从新向咱们本身的服务器请求订单支付状态, 究竟是支付成功仍是失败; 支付宝支付也是同样的, 调起支付宝客户端以前, 咱们须要先向咱们本身的服务器请求数据, 若是是支付宝的支付那么久给咱们返回支付宝支付的partner, seller, privateKey等信息, 获得结果后, 调起支付宝客户端, 支付成功后, 在回调中请求咱们本身的服务器, 判断订单是够支付成功.

**总结: 说到底, 订单究竟是支付成功仍是失败, 不能根据应用收到的回调信息来判断, 应该以咱们本身服务器端的信息为准. **后端

微信支付和支付宝支付流程, 对于移动端来讲, 能够统一用如下图示的流程来解决:安全

  1. 用户点击付款, 商户APP向商户服务器发送支付请求;服务器

  2. 商户APP获取支付必须的信息, 如 : prepay_id, sign, seller等信息;微信

  3. 调起微信或者支付宝, 等待用户校验付款;测试

  4. 微信APP向微信服务器发起付款的请求;微信支付

  5. 商户APP获得微信或者支付宝支付结果的回调;加密

  6. 商户APP收到回调, 向本身的服务器请求支付成功或者失败的结果;

  7. 获得支付结果后, 向用户展现支付成功或者失败;

    支付是一个安全性要求比较高的操做, 像密钥, 商户ID, 签名等安全性要求比较高的, 而且可能不是一成不变的信息, 最好仍是放在服务器端来比较好, 用户端须要的时候就经过加密的接口来从服务器请求.

2. ApplePay

Applepay测试开发心得

3. UnionPay

4. 我的对几种主流支付方式的封装

github: https://github.com/hell03W/WHPay

欢迎关注

5. 正确的支付逻辑

咱们把须要的商品金额发给后段,后端比对以后加密返回给我全部的订单信息,包括回调什么的,后端统一管理
而后咱们把收到的加密后的信息,发给支付宝,该怎么支付怎么支付,
支付完成以后,支付宝会给移动端和后端分别发送支付信息
而后前端把收到的信息发给后端进行比对
后端比对成功,更改本身订单状态
相关文章
相关标签/搜索