虚拟商品充值接口
常见问题
1.虚拟商品充值接口签名验证失败
在接口开发的过程中,开发经常遇到的情况也是最为普遍的现象是签名验证失败。 开发者排查签名问题流程如下:
- 检查验签的
app_key
和appsecrect
是否和请求一致; - 开发者可以根据链接,循环打印出来 GET 请求链接中的参数,看是否有中文乱码的现象;如果发现中文乱码,常见解决方式是,看下自己服务端开发平台是不是 UTF-8 编码的,自己有没有重复解码或者编码的情况;
- 依次检查签名参数,签名原串是否和 GET 请求一致;
开发者可按如下流程一一检查:
下面是一个虚拟商品充值的 GET 请求示例(仅供参考)
http://integral.com/chengquan/consume?account=13888888888&app_key=18888888888&description=%E5%85%85%E5%80%BC%E8%AF%9D%E8%B4%B925%E5%85%83%EF%BC%8C%E6%B6%88%E8%80%9710%E7%A7%AF%E5%88%86%EF%BC%8C20%E5%85%83&identifier=abc&ip=192.168.1.100&order_no=J100011908271035×tamp=x&uid=4839203890302&user_order_no=J100011908271042
本地解析请求参数时,可以查看请求签名相关参数,检查中文是否编码等问题,正确参数形式如下
签名参数列表如下
uid = 4839203890302,
order_no = J100011908271035,
user_order_no = J100011908271042,
account = 13888888888,
identifier = abc,
ip = 192.168.1.100,
sign = 79f7274cca8ea788fa75348ad177213f,
timestamp = 1557037740232,
description = %E5%85%85%E5%80%BC%E8%AF%9D%E8%B4%B925%E5%85%83%EF%BC%8C%E6%B6%88%E8%80%9710%E7%A7%AF%E5%88%86%EF%BC%8C20%E5%85%83,
app_key = 18888888888,
根据签名规则拼接的签名前字符串:
account=13888888888&app_key=18888888888&app_secret=xxx&description=%E5%85%85%E5%80%BC%E8%AF%9D%E8%B4%B925%E5%85%83%EF%BC%8C%E6%B6%88%E8%80%9710%E7%A7%AF%E5%88%86%EF%BC%8C20%E5%85%83&identifier=abc&ip=192.168.1.100&order_no=J100011908271035×tamp=x&uid=4839203890302&user_order_no=J100011908271042
根据参数得到签名 sign = 79f7274cca8ea788fa75348ad177213f