电商业务Alipay支付实战(当面付实现)

电商业务Alipay支付实战(当面付实现)一 扫码支付业务说明 支付宝二维码当面付 1 获取二维码 扫码支付 等待回调 支付宝后台 修改订单状态 可能由未支付变为已支付 定期对账 2 二维码中包含订单信息 以及怎么扣款等信息 二 支付宝当面付流程 预下单 将订单信息先交给支付宝后台进行处理 三

大家好,我是讯享网,很高兴认识大家。

一、扫码支付业务说明

支付宝二维码当面付: (1)获取二维码、扫码支付、等待回调(支付宝后台)、修改订单状态(可能由未支付变为已支付)、定期对账 (2)二维码中包含订单信息,以及怎么扣款等信息 

讯享网

二、支付宝当面付流程


讯享网

讯享网 预下单:将订单信息先交给支付宝后台进行处理。 

三、支付宝sdk代码集成

1、添加依赖包 (1)SDK-maven依赖地址说明:https://docs.open.alipay.com/54// 2、Demo去了解怎么玩 当面付DEMO:https://docs.open.alipay.com/54// 将Demo Copy到项目中 3、配置 zfbinfo.properties (1)配置个人商户的公钥和私钥对 (依赖支付宝的) 

私钥:加密订单号、产品的详细、打折等信息 传到支付宝后台,密文没有公钥是解密不了的。

以防黑客篡改我们的信息。。。

四、业务具体的实现逻辑

(一)生成二维码

讯享网(1) 根据前台传递的一些必备的信息,预下支付宝订单(用户点击下单的连接, 进入Controller中的方法) ->支付宝后台根据相应结果(Success、failed等状态) response信息生成支付二维码 (2) 支付二维码的是字符串形式,通过google.zxing生成。具体形式是 http://localhost:8088/static/qrcode/1929.png 这是二维码图片的Http相应路径, (3) 其实二维码是保存在机器的本地磁盘中的,例如我将二维码存在了D:\temp\qr-code\alipay\路径下,所以 当访问 http://localhost:8088/static/qrcode/1929.png地址的时候,需要到本地磁盘 中去找对应的文件,因此,需要资源的映射,才能在本地磁盘中找到具体的信息。 (4) 具体做法:在一个配置类里,如果当前访问的路径是/static/qrcode,就需要去做映射,映射到本地的存储路径中 

(二)在沙箱环境下扫码测试

需要在沙箱环境下测试,要不钱丢了都不知道...沙箱环境就是内部可以模拟你的钱包,然后支付即可。 传递商户订单号参数来查询当面付的状态,根据阿里的当面付API的设置,以及用户真实的操作流程,返回一个结果(支付成功、支付失败、系统异常、不支持此类交易等等),返回到controller 

(三)支付后结果的回调,异步向商家后台通知结果

讯享网手动查询订单的状态或者前端轮询去查询订单的状态这肯定是不合适的,所以为避免手动查询或线程去轮询, 因此支付宝提供了支付成功后主动回调查询信息的方式。用户通过手机扫描二维码进行支付, 支付宝会将该笔订单的变更信息,沿着商户调用预下单请求时所传入的通知地址主动推送给商户。 

支付结果的回调要求应用服务器和支付宝的服务器能在公网上能通讯
但是我们在本地环境是在内网环境,公网访问不了内网。正常情况下我们的ip是不对外开放的,因此我们需要一个桥梁(内网穿透工具),使得外网能够穿透我们的内网,到我们的内部访问我们自己的电脑。桥梁:NetApp

具体做法

get一下蚂蚁金服发送过来的参数,并全部打印出来,通过request获取:`getRequest().getParameterNames();` 通过map保存, 通过支付宝提供的API将以下信息通过参数传递: // 参数一:这里把支付宝传递的参数Map传递进来 //参数二:支付宝公钥 //编码 //配置的签名类型 boolean result = AlipaySignature.rsaCheckV2(map,Configs.getAlipayPublicKey(),"utf-8",Configs.getSignType()); 得到一个布尔类型的result,此处是用非对称加密去解密支付宝回调接口,查看是否是支付宝回调的。密文是否被人篡改过。 result为true表示没被篡改过,则通过相应流getResponse().getWriter()返回success,result为false则向支付宝后台响应unSuccess 

(五)退款流程
退款也要涉及到全局的唯一订单号,也是copyAli的API,注全局唯一订单号:全局唯一可通过:雪花算法、redis全局序列号等实现

小讯
上一篇 2025-03-08 11:42
下一篇 2025-02-16 08:24

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/33415.html