扫呗接口单元设计

为了应景2022年3月禁止个人收款码用于商业场景,把以前的扫呗独立单元记录一下。
语言环境:DELPHI
一、建立一个独立单元,可以在程序任何地方进行调用。
二、单元内容:
1、为了简单,先把扫呗的原JSON内容定义成常量。
2、生成订单号函数:生成毫秒级时间字符串+5位随机数+用户名(随便定义)
3、生成POST通用函数:支付、查询、退款,只是地址与带入JSON不同,其它相同
4、支付函数:带入必要固定参数------带入必要动态参数-----函数内生成拼接令牌(根据参数,采用替换法,或者自己写命令生成也可以)-----生成MD5-----生成支付JSON(采用替换法或自己写)-----采用POST通用函数得到返回值。
5、查询与退款同支付函数逻辑相同。
三、实际应用场景
1、单机付款环境:到数据库或本地获取固定参数后带入对应函数,每步执行前进行数据记录,执行后再次进行数据记录,出问题时可以进行日志回溯。
2、网络付款环境:各支付点将金额与订单号或唯一标识发送到网络中一台固定服务器,由服务器软件进行支付。
四、注意事项:
1、与扫呗对接时使用测试地址,测试完成后需要更换为实际地址,所以可以将获取地址变为一个通用函数,转为正式的时候在通用函数内修改一下就可以。
2、一定要每个步骤都进行记录,否则客户使用后出问题没地方查询了,毕竟使用环境问题最多。
3、应该作到支付成功后,进行一次或N次查询,确定收款成功。
4、数据丢包一定会造成支付失败,所以客户的网络要求稳定。
5、退款一定要有对应的权限,否则售后会更多。
6、在电脑的实际使用场景中,一定要关闭回车确定等类似功能(由于扫码盒在获取到收款码后会增加一个回车,如果客户连刷两次码,会向程序再次发送一个回车,要避免这次回车带来的意外情况)
7、在分析扫呗返回的JSON中,尽量细化支付失败时的反馈,比如是通信失败、还是支付失败、还是支付超时(客户未及时输入支付密码)等。
8、仔细查看扫呗的官方文档,支付超时、查询次数限制、退款限制、是否具有退款功能。
9、尽量先不开通退款功能,后期稳定了再加入这个功能,毕竟多收钱了客户不会在意,如果少收钱了,那才是麻烦。
10、将整体支付作成一个单独的窗体,方便在程序中的任何地方进行调用,调用前带入必要的参数,如本次是谁调用、为了什么调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值