时间:2019-05-03 来源:小程序工厂
周***:
你可以写一个空表单,然后当设备的出现异常时触发。那你有遇到过请求成功一直40001的情况么????
B***:
formId的生成要手动点击按钮的啊,设备异常时,微信小程序是不知道的,要后台推送消息通知。你说的40001代码对应的错误信息是什么?
能获取用户的微信号吗?
周***:
40001 "errmsg": "invalid credential, access_token is invalid or not latest hint:" token没有是失效,可以生成二维码,就是请求模板消息接口时有问题
B***:
介不介意把你的请求代码贴上?
周***:
if(!empty($access_token)) { $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={$access_toke}'; $data = '{ "touser":"{$o_id}", "template_id":"{$template_id}", "form_id":"{$form_id}", "data": { "keyword1": { "value":"{$u_name}" }, "keyword2": { "value":"{$money}" }, "keyword3": { "value":"{$to_place}" } , "keyword4": { "value":"{$dated}" } , "keyword5": { "value":"{$remark}" } } }'; $result = sendCmd($url,$data); $arr = array('ret'=>1, 'msg'=>'success', 'data'=>array('result'=>$result) function sendCmd($url,$data) { $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解决数据包大不能提交 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循 curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 $tmpInfo = curl_exec($curl); // 执行操作 if (curl_errno($curl)) { echo 'Errno'.curl_error($curl); } curl_close($curl); // 关键CURL会话 return $tmpInfo; // 返回数据 }
请审核人员指出问题所在
周***:
就是普通的模板消息请求
$url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={$access_toke}';
周***: if(!empty($access_token)) {
$url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={$access_toke}';
$data = '{
"touser":"{$o_id}",
"template_id":"{$template_id}",
"form_id":"{$form_id}",
"data": {
"keyword1": {
"value":"{$u_name}"
},
"keyword2": {
"value":"{$money}"
},
"keyword3": {
"value":"{$to_place}"
} ,
"keyword4": {
"value":"{$dated}"
} ,
"keyword5": {
"value":"{$remark}"
}
}
}';
$result = sendCmd($url,$data);
$arr = array('ret'=>1,
'msg'=>'success',
'data'=>array('result'=>$result)
);
} else {
$arr = array('ret'=>0,'msg'=>'ACCESS TOKEN为空!');
}
echo json_encode($arr);
function sendCmd($url,$data)
{
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解决数据包大不能提交
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循