继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第7天 微信支付

有梦
关注TA
已关注
手记 82
粉丝 27
获赞 19

课程名称:SpringBoot+Vue3 项目实战,打造企业级在线办公系统


课程章节: 用户管理模块


课程讲师: 神思者


课程内容    

    微信支付有很多种形式,调用的API接口也不相同。现在做的是Web版本的在线办公系统,所以就得使用Web版本的微信支付API接口。这里我们用的是微信支付里面的Native支付,就是网站生成支付二维码,然后用户在手机上面用微信扫码付款。

http://img.mukewang.com/635dcab20001695308020474.jpg

商品订单是我们本地系统生成的。由于我们做的不是电商系统,所以本地的商品订单其实就是罚款单,用户要为这笔罚款付钱。支付订单是微信服务器生成的,我们调用API接口,传入参数就能创建支付订单了。


每个支付订单都有唯一的ID值,将来我们查询这笔付款是否支付成功,就会用到支付订单的ID作为查询条件。另外,商品订单ID在我们的项目中也必须要唯一。例如我们用某个商品订单ID创建支付订单,第一次可以成功创建支付订单,但是你再用这个重复的商品订单ID创建支付订单,微信服务器就会报错,因为这个商品订单ID已经用过一次了,这一点大家要切记。


付款过程


用户拿微信扫描网站生成的二维码,并不是直接扣款。因为用户信不过卖家。假如商品订单金额是100元,但是卖家的系统调用微信平台接口,创建了一个1000元的支付订单。如果用户在微信上不核实付款金额和内容的话,就被商家骗走了900元钱。


所以当用户拿手机扫描二维码之后,自动访问微信平台,然后查询支付订单的详情(收款方、支付金额、订单备注等等),如果用户确认没有问题,就可以在手机上输入支付密码了。这个付款请求不是发给卖家的(怕卖家篡改支付金额),而是直接发送给微信平台的。微信平台先核对请求内容,然后执行扣款,最后把付款结果分别发送给商家的后端系统和付款人。


http://img3.mukewang.com/635dcb8b0001983408080483.jpg


确认付款


创建支付订单的时候,其中的参数就包含了商户系统的接收付款结果的URL地址,微信服务器会向这个URL地址发送付款结果。但是万事万物总有个特殊情况,万一微信服务器的消息队列宕机了,没能向商家的系统发送付款结果,那么商家系统中的订单状态就依然是未付款的状态。当然了,商家系统没能接收到付款通知的原因有很多,例如短暂的网络故障,程序错误等原因。


http://img2.mukewang.com/635dcbee0001ce7310710774.jpg
















打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP