微信百度小程序支付java后端开发

上周接了公司的需求,在微信和百度小程序中开发支付功能以及定时对账功能。花了快一周时间,看了大家的不少经验,终于把这个需求给做完了,微信支付流程以及对账流程已经走通,百度的还没有进行测试,现将一些注意事项写出来,后续会将一些大概的代码进行分享。
微信相关逻辑流程代码梳理:
微信后端代码
百度小程序逻辑流程代码梳理:
百度后端代码

微信小程序支付开发文档:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3

一、小程序后端负责生成根据用户的信息,已经购买的相关信息生成订单的编号等信息,通过这个初步的订单信息去微信统一下单接口进行预订单生成。
二、微信会根据商户发送的信息给商户生成预订单,小程序后端接收到的预订单信息需要打包后提供给前端,前端拿着这些信息才能去微信支付接口发起支付。
三、支付成功后,前端会收到微信通知,后端也会收到信息,二者之间没有交互。且后端需要给微信后台反馈是否已经消费过消息。

A.注意签名的问题:
①向微信预订单接口发送请求时,要根据请求的信息生成签名;
②微信返回信息时要对微信返回的签名进行校验(需要根据微信返回的所有信息重新生成签名进行比较);
③在向前端返回信息时,要根据给前端的信息有哪些来生成签名,前端需要拿着这些信息去微信请求支付;
B.注意随机字符串:
①预订单请求时商户随机生成一个字符串;
②微信预订单请求返回信息时也会返回一个随机字符串;
③后端给前端返回信息时的随机字符串是微信预订单返回的随机字符串;

C.处理回调时候注意:
①微信回调时,如果返回信息超时或者应答不规范,微信是会持续进行回调,此时要注意幂等性的问题,处理过的消息不能再进行处理;
②为了资金安全,在微信回调时要对回调消息的参数签名等信息进行校验;

对账单:
微信下载的账单格式已经和文档中的不一样了,对应信息的位置也已经发生了改变,需要下载完账单后对照表头信息进行重新解析。
这是我对账时候下载账单的格式:

交易时间,公众账号ID,商户号,特约商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,应结订单金额,代金券金额,商品名称,商户数据包,手续费,费率,订单金额,费率备注`

最后一行信息的格式为:

总交易单数,应结订单总金额,退款总金额,充值券退款总金额,手续费总金额,订单总金额,申请退款总金额

本人当时对账单时只对了SUCCESS类型的账单,这些信息也是该请求下返回的微信账单格式,其他类型没研究过。

百度开发文档:
https://smartprogram.baidu.com/docs/develop/function/invoke_process/
百度支付那边生成订单更简单一些,不需要和百度进行交互,而且签名的生成有现成的工具类,同时和前端传递信息时用的都是JSON,只不过在下载对账单时比较麻烦,需要去拿一个access_token,但是需要注意的是,这个token对于平台来说全局唯一,下载账单请求token也会导致其他地方的token失效,所以最好有一个统一的地方去获取token。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值