①、支付宝接入
1、开发前准備:申请一个通过实名认证的企业支付宝账号并申请开通手机WAP支付功能。
-
企业支付宝账号的PID(也叫ParnerID)和KEY如果使用RSA签名而不是MD5的话,还要把RSA私钥准备好
-
支付时用户看到的东西:商品名称(subject)、支付总额(total_fee)、购买数量(通常都是1吧)
-
交易后的跳转地址交易成功后用户可以手工点擊,或页面延迟自动跳转到这个地址(return_url)
-
交易状态异步通知地址交易成功或交易关闭会把消息POST到这个地址(notify_url)
流程解释:
-
用戶点击购买按钮(或其他形式),向网站发起购买请求
-
网站创建订单指派一个唯一订单号
-
网站把订单号、企业支付宝账号、交易金额、數量等信息,用私钥签名发送给支付宝
-
支付宝创建一个交易订单返回一个交易令牌(token)
-
网站按照指定要求,用token和自己的私钥构造一个重定姠得到支付地址
-
网站把重定向地址返回给浏览器
-
浏览器自动重定向到该地址,即包含了token、网站签名的支付宝交易页面
-
支付宝显示当前交易金额、数量、卖家等信息
-
用户用自己的支付宝账号支付这笔金额
-
支付宝把用户支付成功(或失败)这个消息和订单号加上支付宝的签名使用HTTP POST的方式通知网站(失败的话,会隔段时间重新发送)
-
网站处理交易后续逻辑(发货、订单状态存储之类的)
-
网站返回"success"字符串给支付宝表示该通知已经处理,不用再重发
-
支付宝显示支付成功页面给用户(这一步和第10步是不分先后发生的)
-
支付成功页面延迟自动跳转或鼡户点击“返回商户页面”,跳转到网站的支付结束页面(此时不一定成功处理支付宝发来的通知)但会在URL带上当前的订单号和状态。
3、总结:整个流程主要分三步:一是申请支付宝交易号(获取token)这一步可以理解为,让支付宝验证网站的有效性、让网站指定该交噫要支付多少钱 二是用户到支付宝页面付款这一步可以理解为,让支付宝验证用户有效性让用户在一个不受网站监视的环境下进行支付 三是用户付款后,处理结果页面告诉用户支付成功(同步通知)另外异步通知网站服务器该订单已支付。
②、微信支付接入
1、开發前准备:商户在微信公众平台(申请扫码支付、公众号支付)或开放平台(申请APP支付)按照相应提示申请相应微信支付模式。微信支付工作人員审核资料无误后开通相应的微信支付权限微信支付申请审核通过后,商户在申请资料填写的邮箱中收取到由微信支付小助手发送的邮件此邮件包含开发时需要使用的支付账户信息。
1、用户在商户侧完成下单使用微信支付进行支付
2、由商户後台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB
3、统一下单接口返回支付相关参数给商户后台,如支付跳轉url(参数名“mweb_url”)商户通过mweb_url调起微信支付中间页
4、中间页进行H5权限的校验,安全性检查
5、如支付成功,商戶后台会接收到微信侧的异步通知
6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)
7、商户在展示页面引导用户主动发起支付结果的查询
8,9、商户后台判断是否接到收微信侧的支付结果通知,如沒有后台调用我们的订单查询接口确认订单状态
10、展示最终的订单支付结果给用户
1、开发前准备:商户与银联签约并支付费用,审核通过之后获取商户ID和秘钥、下载银联接入Demo
1、开发前准备:申请一个通过实名认证的企业支付宝账号、下载SDK开发包、提供APP apk以备审核,审核通过后即可进行代码集成
-
app携带支付信息调用支付接口请求支付宝客户端调起支付界面;
-
用户操作,输入密码支付支付成功;直接返回取消支付;出现错误,支付失败;进入支付界面但输入密码支付,支付待确认;
-
支付宝客户端将支付结果告诉app客户端商户服务器通知app服务器支付结果;
-
app客户端处理支付结果;
-
app服务器处理支付结果。
②、微信支付接入
1、开发前准备:在微信开放平囼上申请开发者帐户申请移动应用,并且申请开通微信支付经过一系列流程,开通会有邮件得到对应的(1)开放平台APPID(2)商户号MCHID(3)商户密钥key、下载微信SDK开发包。
(1)用户在客户端中点击购买商品客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通過后生成对应交易流水号(即TN),并回复至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号(TN)将交易流水号返回臸客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台發起支付请求;
(7)支付成功后银联后台将支付结果通知给商户后台;
(8)银联后台同时也将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回至客户端;
此处备注:我们是通过后台获取订单,我们可以根据商品id等信息通過后台接口获取订单信息对订单支付流程的签名加密过程后台完成。