常见问题

1.扣积分接口签名验证失败

在接口开发的过程中,开发经常遇到的情况也是最为普遍的现象是签名验证失败。 签名验证工具地址:http://wechat.duiba.com.cn/dbsign

开发者排查签名问题流程如下; 1.检查验签的appkey和appsecrect是否和请求一致; 2.开发者可以根据链接,循环打印出来get请求链接中的参数,看是否有中文乱码的现象;如果发现中文乱码,常见解决方式是,看下自己服务端开发平台是不是UTF-8编码的,自己有没有重复解码或者编码的情况; 3.依次检查签名参数,签名原串是否和get请求一致;

开发者可按如下流程一一检查:

下面是一个扣积分get请求示例(仅供参考测试)

http://yangyd.s1.natapp.cc/duiba/consume?uid=test001&orderNum=order-for-test-1477390592222&credits=500&params=null&paramsTest68=68&type=coupon&ip=192.168.1.100&sign=7ab14a1a8a0311f34e9199b2325b5654&timestamp=1477390592222&waitAudit=true&actualPrice=0&description=%E6%B5%8B%E8%AF%95%E4%B8%93%E7%94%A8%E4%BC%98%E6%83%A0%E5%88%B8&facePrice=0&appKey=3gyWdRiPKkaMiiH6V3RUFybsdeDZ&

本地解析请求参数时候,可以打印一下请求签名参数看下,是不是有中文乱码,正确形式如下

打印出签名参数列表如下
actualPrice=0,
ip=192.168.1.100,
orderNum=order-for-test-1477390592222,
description=测试专用优惠券,
waitAudit=true,
params=null,
type=coupon,
uid=test001,
paramsTest68=68,
credits=500,
facePrice=0,
appKey=3gyWdRiPKkaMiiH6V3RUFybsdeDZ,
appSecret=4DEz67Z1VmzWVxUy5mVUnZoS2d8v,
timestamp=1477390592222

根据签名规则拼接的签名前字符串: 03gyWdRiPKkaMiiH6V3RUFybsdeDZ4DEz67Z1VmzWVxUy5mVUnZoS2d8v500测试专用优惠券0192.168.1.100order-for-test-1477390592222null681477390592222coupontest001true

根据参数签名sign====7ab14a1a8a0311f34e9199b2325b5654

开发者另一个需要注意的是请求签名解析时候,不能写死签名参数,应该遍历所有请求参数签名,测试连接中是有一个测试请求参数的(比如:paramsTest68=68)该参数名称不固定,目的是防止开发者写死签名参数的;同样,如果开发者接口地址中增加了自定义的请求参数,在签名时候是需要移除掉的。

2.测试期间,兑换测试专用优惠券时候,出现网络请求出错

开发者可以看下,是不是自己配置的接口地址不是外网可以访问的,或者开发者响应的格式不是纯json格式响应的

3.测试期间,兑换测试专用优惠券时候,出现json解析失败

对于php的开发者,经常遇到的情况是json解析失败,但是自己响应的格式也是按照文档响应的,不过根据开发者反应情况,给出如下建议:开发者可以查下,是不是响应的格式中含有隐含字符(可以通过chrome浏览器中请求一下,并通过审查元素查看一下是否有隐含字符);其次就是可能php响应信息中BOM头引起的json格式问题,同样会引起兑吧这边解析不通过.

4.测试期间,兑换测试专用优惠券时候,出现开发者订单号重复的情况

开发者反馈,测试兑换提示开发者订单号重复的问题,也是比较常见的问题,其主要原因可能是开发者响应的开发者订单号在不同测试环境时候有重复或者有清除本地测试数据的情况,导致开发者响应回来的开发者订单号在兑吧这边已经有记录,这样就会导致开发者订单号重复响应。

results matching ""

    No results matching ""