畢設-微信商城遇到的問題(二)
2018/04/07
1.【問題】Can’t use function return value in write context
出現問題的程式碼段
if(empty(session('userId'))){
....
}
【解析】:這個意思大概就是說不能使用函式返回值作為函式引數。其實也與php版本有關,在5.5以上就不會報錯。
所以解決辦法是:
(一)、改寫程式碼
$test = session('userId');
if(empty($test)){
...
}
(二)、升級一下PHP的版本,改為5.5以上的
2.【問題】PHP Warning: file_get_contents failed to open stream
【解析】:此警告說伺服器阻止訪問遠端檔案。
解決辦法:參考
我嫌麻煩,直接用了curl方法,參考了這裡的程式碼例項分析基於PHP微信網頁獲取使用者資訊,主要是getUserInfo.php裡的getJson方法。
3. 【問題】測試公眾號:redirect_uri域名與後臺配置不一致,錯誤碼10003 錯誤
【解析】:百度查了好多相關問題,因為我的是測試賬號,但我不知道測試賬號的介面許可權這邊也需要設定網頁賬號。
解決辦法:點選右側的“修改”,填寫回調域名即可
4.我測試公眾號用程式碼寫的自定義選單,但有的時候修改了自定義選單,但是經常無法生效。取消關注後還是無法生效。這個時候就要看一下你寫的自定義選單的這個介面是不是有什麼問題了。
public function defineItem()
{
//建立微信選單
//目前微信介面的呼叫方式都是通過CURL post/get
header('content-type:text/html;charset=utf-8');
$access_token = $this->getWxAccessToken();
echo $access_token;
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $access_token;
$postArr = array(
'button' => array(
array( 'name' => urlencode('商城入口'),
'type' => 'view',
'url' => 'http://www.qq.com'),//第一個一級選單
array('name' => urlencode('商家中心'),
'type'=>'view',
'url'=>'https://www.sogou.com/',
),//第二個一級選單
array('name' => urlencode('招商政策'),
'type' => 'view',
'url' => 'http://www.baidu.com',
)//第三個一級選單
),
);
echo $postJson = urldecode(json_encode($postArr));
$res = $this->http_curl($url, 'post', 'json', $postJson);
echo "<hr/>";
var_dump($res);
}
這個方法是可以訪問的,如果自定義選單修改後,無效,我們就可以訪問這個方法,通過var_dump($res),
我們可以根據圖中的errcode、errmsg來修改錯誤。如我現在的錯誤碼就是40001,通過微信開發文件我們可以知道是獲取 access_token 時 AppSecret 錯誤,或者 access_token 無效。請開發者認真比對 AppSecret 的正確性,或檢視是否正在為恰當的公眾號呼叫介面。
這個時候重新獲取一下access_token就可以了