一:问题
描述:最近项目中的接口都加了签名,在同步到支付宝小程序上时,发现有些接口报错,经过排查,导致报错的原因是因为传参顺序被支付宝小程序默认排序了,比如:
设置的原始参数:let param = {a:'haha',c:'heihei',b:'lala'
}支付宝接口传参会排序为:let param = {a:'haha',b:'lala',c:'heihei'
}
这个排序不可逆,如果接口请求和请求参数顺序有关系的话,就会导致错误的返回结果。
二:如何解决
1:使用唯一的参数名,每个参数分配唯一的参数名。
2:将所有参数封装到一个请求对象中,将该对象作为唯一参数传递给接口。
3:在设置请求参数时就按照顺序编写。
后续更多方法会继续补充。