getunlimit php,thinkphp6 获取小程序码 47001错误

在用thinkphp6写一个项目的接口时,需要用wxacode.getUnlimited获取小程序码,代码如下:

//获取小程序码

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$access_token);

curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

curl_setopt($curl, CURLOPT_POST, 1);

$fields = [

'scene' => $data['scene'],

'page' => $data['page'],

'width' => 500

];

curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);

$res = curl_exec($curl);

curl_close($curl);

var_dump(json_encode($res));

可是得到的结果却是:

{"errcode":47001,"errmsg":"data format error hint:"}

从字面意思是,参数格式错误。后来找了半天,才发现:

curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);

上面这行代码有问题,参数必须要json格式化,官方文档根本没有说要这么干,太坑了!加上请求头,并且将参数json化,不再报上面的错了:

//获取小程序码

$curl = curl_init();

$headers = array("Content-type: application/json;charset=UTF-8","Accept: application/json","Cache-Control: no-cache", "Pragma: no-cache");

curl_setopt($curl, CURLOPT_URL, 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$access_token);

curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

curl_setopt($curl, CURLOPT_POST, 1);

$fields = [

'scene' => $data['scene'],

'page' => $data['page'],

'width' => 500

];

//参数json序列化

curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($fields));

//设置请求头

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers );

$res = curl_exec($curl);

curl_close($curl);

var_dump(json_encode($res));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值