H5 - 手机 APP 接入支付宝、微信、银联支付流程汇总

一、wap 站

①、支付宝接入

1、开发前准备:申请一个通过实名认证的企业支付宝账号,并申请开通手机 WAP 支付功能。

2、流程

参数准备:

  1. 企业支付宝账号的 PID(也叫 ParnerID) 和 KEY,如果使用 RSA 签名而不是 MD5 的话,还要把 RSA 私钥准备好

  2. 支付时用户看到的东西:商品名称 (subject)、支付总额(total_fee)、购买数量(通常都是 1 吧)

  3. 交易后的跳转地址,交易成功后用户可以手工点击,或页面延迟自动跳转到这个地址 (return_url)

  4. 交易状态异步通知地址,交易成功或交易关闭会把消息 POST 到这个地址 (notify_url)

流程图:

流程解释:

  1. 用户点击购买按钮(或其他形式),向网站发起购买请求

  2. 网站创建订单,指派一个唯一订单号

  3. 网站把订单号、企业支付宝账号、交易金额、数量等信息,用私钥签名发送给支付宝

  4. 支付宝创建一个交易订单,返回一个交易令牌 (token)

  5. 网站按照指定要求,用 token 和自己的私钥,构造一个重定向得到支付地址

  6. 网站把重定向地址返回给浏览器

  7. 浏览器自动重定向到该地址,即包含了 token、网站签名的支付宝交易页面

  8. 支付宝显示当前交易金额、数量、卖家等信息

  9. 用户用自己的支付宝账号支付这笔金额

  10. 支付宝把用户支付成功(或失败)这个消息和订单号加上支付宝的签名,使用 HTTP POST 的方式通知网站(失败的话,会隔段时间重新发送)

  11. 网站处理交易后续逻辑(发货、订单状态存储之类的)

  12. 网站返回 “success” 字符串给支付宝,表示该通知已经处理,不用再重发

  13. 支付宝显示支付成功页面给用户(这一步和第 10 步是不分先后发生的)

  14. 支付成功页面延迟自动跳转,或用户点击 “返回商户页面”,跳转到网站的支付结束页面(此时不一定成功处理支付宝发来的通知),但会在 URL 带上当前的订单号和状态。

3、总结:整个流程主要分三步:一是申请支付宝交易号(获取 token),这一步可以理解为,让支付宝验证网站的有效性、让网站指定该交易要支付多少钱 二是用户到支付宝页面付款,这一步可以理解为,让支付宝验证用户有效性,让用户在一个不受网站监视的环境下进行支付 三是用户付款后,处理结果页面告诉用户支付成功(同步通知),另外异步通知网站服务器该订单已支付。

②、微信支付接入

1、开发前准备:商户在微信公众平台 (申请扫码支付、公众号支付) 或开放平台 (申请 APP 支付) 按照相应提示,申请相应微信支付模式。微信支付工作人员审核资料无误后开通相应的微信支付权限。微信支付申请审核通过后,商户在申请资料填写的邮箱中收取到由微信支付小助手发送的邮件,此邮件包含开发时需要使用的支付账户信息。

2、流程:

流程解释

1、用户在商户侧完成下单,使用微信支付进行支付

2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型 trade_type=MWEB

3、统一下单接口返回支付相关参数给商户后台,如支付跳转 url(参数名 “mweb_url”),商户通过 mweb_url 调起微信支付中间页

4、中间页进行 H5 权限的校验,安全性检查。

5、如支付成功,商户后台会接收到微信侧的异步通知

6、用户在微信支付收银台完成支付或取消支付, 返回商户页面(默认为返回支付发起页面)

7、商户在展示页面,引导用户主动发起支付结果的查询

8,9、商户后台判断是否接到收微信侧的支付结果通知,如没有,后台调用我们的订单查询接口确认订单状态

10、展示最终的订单支付结果给用户

③、银联接入

1、开发前准备:商户与银联签约并支付费用,审核通过之后获取商户 ID 和秘钥、下载银联接入 Demo。

2、流程图:

流程图解释:

二、手机 APP

①、支付宝接入

1、开发前准备:申请一个通过实名认证的企业支付宝账号、下载 SDK 开发包、提供 APP apk 以备审核,审核通过后即可进行代码集成。

2、流程

流程图:

流程解释:

  1. app 携带支付信息调用支付接口请求支付宝客户端调起支付界面;

  2. 用户操作,输入密码支付,支付成功;直接返回取消支付;出现错误,支付失败;进入支付界面,但输入密码支付,支付待确认;

  3. 支付宝客户端将支付结果告诉 app 客户端,商户服务器通知 app 服务器支付结果;

  4. app 客户端处理支付结果;

  5. app 服务器处理支付结果。

②、微信支付接入

1、开发前准备:在微信开放平台上申请开发者帐户,申请移动应用,并且申请开通微信支付。经过一系列流程,开通会有邮件,得到对应的(1)开放平台 APPID(2)商户号 MCHID(3)商户密钥 key、下载微信 SDK 开发包。

2、流程:

流程解释:

1. 客户端请求订单

2. 认证商户,获取 access_token

3、组装生成预定单所需参数并签名

4、调用微信统一下单接口并传递参数,得到预订单号

5、对得到的预定单参数再次签名

6、调起微信支付并验证参数有效性

7、验证通过,提示用户输入支付密码

8、提交支付,异步返回支付结果和订单详情

9、客户端同步跳转页面。

③、银联支付接入:

1、开发前准备:商户与银联签约并支付费用,审核通过之后获取商户 ID 和秘钥、下载银联接入 Demo、下载集成到 APP 中的 SDK 开发包         (https://open.unionpay.com/ajweb/help/file)。

2、流程图:

流程图解释:

(1) 用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;

(2) 商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;

(3) 银联后台接收订单信息并检查通过后,生成对应交易流水号 (即 TN),并回复至商户后台 (应答要素:交易流水号等);

(4) 商户后台接收到交易流水号 (TN),将交易流水号返回至客户端;

(5)客户端通过交易流水号 (TN) 调用支付控件;

(6) 用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;

(7) 支付成功后,银联后台将支付结果通知给商户后台;

(8) 银联后台同时也将支付结果通知支付控件;

(9) 支付控件显示支付结果并将支付结果返回至客户端;

此处备注:我们是通过后台获取订单,我们可以根据商品 id 等信息通过后台接口获取订单信息,对订单支付流程的签名加密过程后台完成。

出处:https://www.cnblogs.com/lihuidu/p/6692831.html

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值