发表于: 2019-11-29 21:07:33
1 757
今天完成的事情:
学习第三方支付流程
B2C电商的支付,一般由于支付金额比较小,支付比较频繁,所以一般采用第三方支付,常用的第三方支付有:支付宝、微信、易宝支付等。他们的原理都差不多。都是在点击支付时,直接调用第三方支付接口,传入appid、appsecret、订单编号、订单金额、回调url,直接跳转到第三方支付页面,接下来的支付过程,我们都不需要管,支付成功以后,第三方支付平台会直接回调我们的url。给我们返回:状态码、订单编号、支付流水号三个参数。我们首先根据订单编号,找到我们的订单,把支付流水号和状态码更新到我们的订单里边。回调url,一般有两种,一种用同步get方法回调,一种用异步的类似ajax方法回调,同步方法回调,一般是成功以后才会回调,并且只回调一次,回调成功以后我们可以直接跳转到我们的支付成功页面、异步方法回调,一般要求我们返回一个success字符串,第三方平台如果没有接受到success,就会认为没有调用成功,他会重复多次调用。比如支付宝会在25小时之内,调用8次;一般情况下第三方支付都采用第二种方式,因为比较安全,但支付宝是同时采用了两种。
明天计划的事情:完成web支付总结
存在问题:暂无
收获:
微信扫码支付流程
1、商户系统根据用户选择的商品生成订单
2、用户确认支付后根据微信,向微信支付系统发出请求
3、微信支付系统收到请求后,先生成预支付订单,然后给商户系统返回二维码连接
4、商户系统拿到返回值字符串,转换成对象,然后取出二维码连接生成二维码
5、用户通过微信“扫一扫”功能扫描二维码,微信客户端将扫码内容发送到微信支付系统
6、微信支付系统接收到支付请求,验证链接有效性后发起支付,请求客户确认,然后我们的微 信端就会弹出需要确认支付的页面
7、用户输入密码,确认支付并提交授权
8、微信支付系统根据用户授权完成交易
9、微信支付系统支付成功后向微信客户端返回交易结果,并将交易结果通过短信、微信提示用户
10、微信支付系统通过发送异步消息通知商户系统后台支付结果,商户系统需回复接收情况,通 知微信支付系统不再发送该单的通知
11、未收到支付通知的情况,商户系统可调用
12、商户确认订单已经支付后给用户发货
支付宝支付流程
1、用户请求支付,调用我方接口,我方根据订单信息和商品信息构造符合支付宝要求的请求参数(请求参数中具有一个我方的回调地址,当支付成功的时候,支付宝会回调这个接口)去请求一个支付二维码(可设置支付二维码的过期时间)。我方将支付二维码持久化到图片服务器,然后图片地址给前端,让前端展示给用户。
2、剩下这一步就是用户和支付宝的交互了。用户支付成功后,支付宝回调我们的接口,我们的接口开始去更新订单状态,写支付信息到我们的数据库中,如此一个完整的支付场景就完成了。支付宝会根据我们返回的值,判断这次交易是否成功,不成功则不扣钱。
评论