最近公司项目aap需要添加QQ钱包支付的功能。 我之前没有做过支付,所以就去QQ支付官方文档看看需要做什么。
QQ支付api文档地址:
我看了一下文档,文档参数也很详细,但是我之前没有写过,所以感觉很无头绪。 然后我就去网上搜索有关QQ支付的文章,却发现没什么可讲的,几乎没有人写过。
我现在写下这篇文章,是希望以后的人能够快速上手这个功能。
首先,你需要在用户点击应用内的购买按钮时创建一个订单,然后选择你想要的支付方式(这里选择QQ支付)。 然后你可以看一下文档,看看需要哪些请求参数。 您还可以在应用程序上编写一些自己的参数。 文档中有一个请求参数叫sign。

在这里进行您的第一次签名
然后请求QQ统一点餐接口如上图。 返回的数据是xml形式,所以我们需要将其转换为map。
然后判断返回值是否为 。
如果成功的话,我们需要返回一些参数给前端(我是后端)。 这里需要注意前端请求我们写的接口需要的参数。
查看详情(以为例)
如下所示:

请注意,它们的参数有多个参数。 该参数无用,但必须存在,且值为空。
那么后台需要对参数进行签名。 这里的签名方式不再是MD5,而是HMAC-SHA1。
然后前端激活支付功能。 这时候QQ就会请求我们的回调接口。
我们需要验证传入的回调是否是qq回调。 这时候我们需要验证签名(获取到的参数必须去掉签名再签名)
这里验证签名也需要使用HMAC-SHA1。

然后与sign比较,判断是否成功。成功后后台处理逻辑
注意:验证是否成功不能以前端返回的信息为准。 我们可以通过回调参数自行判断。
这个功能已经写好了,但是和iOS都辞职了,新同事来了,所以等新同事到来后,先完成集成再更新。
如果有写的不对的地方,欢迎指出,共同学习。
新的昨天已连接。 上面的情况是没有问题的。 但第二次签名时,签名密钥不能是上图中的密钥,否则签名不会通过。 这里关键应该是,最后必须加一个&符号,这样签名才能成功。 直接问前端就可以了。