微信支付——jspi支付

微信支付那些坑,先說哪些坑。

1.redirect_url參數錯誤。我在這個錯誤糾結了很久。終於發現錯誤的原因在哪了。報這個錯誤是因爲獲取openid失敗。官方給的demo是通過Getopenid()這個方法獲取openid。
我們來看看Getopenid這個方法寫了哪些。

    public function GetOpenid()
    {
        //通過code獲得openid
        if (!isset($_GET['code'])) {
            //觸發微信返回code碼
            $baseUrl = urlencode('http://wx.zion-washing.com/WxpayAPI_php_v3/example/jsapi.php');

//            **$baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING']);**
            $url = $this->__CreateOauthUrlForCode($baseUrl);
            Header("Location: $url");
            exit();
        } else {
            //獲取code碼,以獲取openid
            $code = $_GET['code'];
            $openid = $this->getOpenidFromMp($code);
            return $openid;
        }
    }

.

它會先獲取code,獲取code就需要請求服務器的url($baseurl)進行網頁授權獲取用戶信息。如果授權成功會返回一個code值,然後根據code值獲取openid。
問題的關鍵就在請求這個url,這裏面我寫死了。如果我沒有寫死的話它就會請求你在微信公衆號的網頁授權地址。(不過首先要保證你的服務器是有網絡的)
成功跳轉到這個url,並且獲取code,然後在通過code獲取openid。這些代碼全部要在服務器上纔可以。

2.invalide code。原因:code碼執行一次就失效,需要重新獲取哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章