问题描述:在调试一个下单的脚本是,用两个账号,迭代两次,但是发现第一次迭代下单成功了,第二次迭代的时候,报了签名错误,检查了参数化、账号都没问题。
问题定位:在服务器上打印日志,看出两次下单中,第二次下单的sign值前面一部分和第一次迭代的sign值一样,这说明第一次迭代的sign值,在第二次迭代时没有清空sign值,然后又在第一次的sign值后面再去拼接相关字段。
解决办法:
源代码如下:定义变量sign,但是到后面都没有去清空sign的值,在网上找不到清空(删除)变量的方法。
面自己想了一下,既然不能删除,那重新赋一个空值看看,没想到真的可以,成功!!
其他相关思考:
拼接相关的变量,一开始有定义了两个,但是却只有sign这个变量有影响(上一次迭代的值传到下一次迭代),str这个变量没有影响,看代码里,sign这个变量是有lr_save_string(sign,"sign");所以应该是保存到lr中的变量,才会被保存。
类似的,除了第二次迭代,如果在同一个迭代中,一个变量也有被重复使用(拼接的情况),也要记得去清空(赋空值),然后再给下一个循环使用。
上面是没赋空值的时候报错,下面是正常: