微信支付“统一下单”接口生成订单怎么办?

2024-03-29
来源:网络整理

没想到调整两个界面这么难!

前段时间,由于项目需要,开发的应用连接了微信公众号和微信支付。 连接微信公众号比较简单。 官方网站有详细的操作指南。 但微信支付遇到了较大的困难,主要是官方文档比较简单,代码演示都是JAVA语言。 经过查阅大量网上教程和摸索实践,终于成功接入微信支付。 本文不仅分享了技术,也起到了复习的作用。

1.流程简述&难点简析

发起微信支付的后端流程:前期准备=>调用微信支付“统一订单”接口生成订单=>生成参数,提供前端生成支付窗口。

整个过程并不复杂。 难点在于弄清楚整个过程以及每个参数的收集或生成。 既然流程已经清楚了,那么就按照流程一步一步来吧。

2. 准备工作

前期准备工作是收集参数以供后续使用。 默认已开通公众平台服务号和微信商户平台账号(微信支付),并已绑定公众平台账号和商户平台账号。 同时,公众号和微信支付已获得授权。 端服务器,则您将得到以下参数信息:

①公众号

②公众号

③商户ID

④商户API密钥

3、统一下单

准备工作做好后,下一步就是最大的挑战——调用微信支付“统一订单”接口生成订单。 我们看一下该接口需要提供哪些参数:

参数太多了,有些参数是不必要的。 所需参数为:

:公众账号ID(已有): 商户编号(已有): 随机字符串符号: 签名正文: 产品描述: 商户订单号: 价格金额: 终端: 通知地址: 交易类型: 用户ID

前两个参数已经有了,从第三个参数开始收集:

①:只需调用该函数即可生成随机字符串(32位以内)

②sign:其他参数完成后,将所有非空参数按照参数名从小到大(字典顺序)排序,并使用URL键值对格式(即key1=&key2=…)拼接成一个细绳。

在字符串的末尾拼接key(即商户的API key),然后对字符串进行MD5运算,最后将得到的字符串全部转换为大写。 示例代码:

③机身:定制

④:定制,保证在商户内唯一

⑤:支付金额,默认单位为“分”

⑥:用户IP,获取自

⑦:构建接收用户支付信息的接口

⑧:公众号支付请填写“”

⑨:公众号互动获取

注意:统一参数名称和参数值的编码格式,避免编码错误。

参数准备完成后,将参数转换为XML格式,即可调用接口。

4.生成前端需要的参数

前端执行JS发起支付所需参数为:

我们可以看到它们都是必要的参数。 前四个相对容易获得。 通过调用后台“统一下单”接口获取。 签名的生成方式与前面描述的相同。

不同的是,参数收集后,不需要转换为XML格式。 它们以JSON格式直接传递给前端。 前端拿到数据后,打开支付窗口的代码如下:

5. 总结

微信支付被在线评为所有支付中连接性最好的。 弄清楚流程后,确实不难。 但由于官方文档太缺乏经验,网上有很多“教程”只是扔一堆代码,没有清晰的思路。 这使得初学者更难上手。

希望这篇文章能给大家带来帮助和启发。

分享