有维易淘客接口的会员咨询:使用PHP接收接口数据后,订单数据接收到后,JSON格式转成数组时,订单号被转成科学计数法怎么办?
通常这个问题都是发生在PHP5.3和5.6以下的PHP版本,PHP5.7没有发现该问题。
问题:
返回的订单编号,被改为科学技术算法了。 这怎么解决?
订单接口调用代码:
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, 'http://api.vephp.com/order?vekey=591hufu.com&start_time='.$order_create_time);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 2);
$file_contents = json_decode(curl_exec($ch),true);
curl_close($ch);
echo sprintf($file_contents['data'][0]['trade_id']);
答:
问题发生于代码 json_decode(curl_exec($ch),true); 中,解决办法很简单:
把json改成如下即可:
json_decode(curl_exec($ch), true , 512 , JSON_BIGINT_AS_STRING);
这样就可以原样保持订单号长数据了,
不过要注意,你的数据库要保存此订单号时,务必使用char或varchar类型,不要用INT。