請求API:https://api.weixin.qq.com/wxa/img_sec_check?access_token=token
問題:用postman模擬get和post請求都有返回
$url = 'https://api.weixin.qq.com/wxa/img_sec_check?access_token=611';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$output = curl_exec($ch);
curl_close($ch);
return $output;
token可以用錯誤的,微信都會返回狀態(tài)碼
但是我在框架里通過curl模擬請求,無論token是否正確,圖片傳遞與否,返回值均為“”【空的】
群里有人出現(xiàn)類型情況,postman測試,都是正常的。如果在webman框架通過curl模擬get請求(正常)post請求(返回空,不正常),代碼確信100%無誤,本人已困擾一下午沒解決,不清楚是哪里問題,示例代碼是從以前正常業(yè)務(wù)代碼復(fù)制過來的
難道是微信api攔截了webman框架發(fā)起來的請求?
這里寫具體的系統(tǒng)環(huán)境相關(guān)信息
不用問微信API,傳遞token錯誤或者圖片沒有傳遞之類的,任何參數(shù)錯誤,微信都會有返回值的。示例是測試微信返回值的,在webman框架里無論怎么傳遞,微信返回“”【空】,如果在postman里測試請求,都會有返回值的
$access_token = 'xxx';
$path = '文件絕對路徑';
curl("https://api.weixin.qq.com/wxa/img_sec_check?access_token=$access_token", ['media' => new \CURLFile($path)]);
function curl($url, $data = [])
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
我們項目在用webman框架做小程序鑒黃,唯一注意的是php-cli里文件路徑要用絕對路徑,其它和php-fpm一樣,沒區(qū)別。
我剛剛弄個錯誤的token請求過去,也是返回空,不報token無效。如果把CURLFile那兩行代碼注釋了,請求過去,微信返回token無效invalid credential, access_token is invalid
//$obj = new \CURLFile(realpath($img_path));
//$obj->setMimeType("image/jpeg");
還是和這兩行代碼有關(guān),我無語了,開啟后,請求貌似不能正常發(fā)過去,curl我是復(fù)制你的【這肯定沒錯】,注釋就正常請求
一樣的,早就試過了,new \CURLFile(realpath($img_path)); 這里面是絕對路徑,傳參確定無誤,curl跟你一樣復(fù)制,我感覺我環(huán)境有問題
我從中午1點,調(diào)試這個bug到現(xiàn)在,其它代碼環(huán)節(jié)檢查無數(shù)次,沒問題。就是開啟CURLFile就不行了,就是這個的問題,開啟后,請求發(fā)不過去,圖片25kb,curl代碼正確