實戰案例 - 微信開發重點摘要之用戶唯一識別碼與網頁存取授權碼 (2)

在取得用戶同意授權碼之後,就可以接著拿 openidaccess token

 

openid 筆者稱之為用戶唯一識別碼access code 則是網頁存取授權碼。從騰訊的公眾平台開發文件可以知道,openid 是跟著用戶走的,每個用戶都有自己的識別碼,這個識別碼也是開發者在寫程式的過程中,區分微信用戶的途徑;而 access code 則有類似鑰匙的作用,有了這個和 openid 就能獲取用戶資訊,要取得用戶識別碼網頁存取授權碼,最關鍵的地方在這個網址:

 

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

 

同樣看到網址中上色的部份,小寫 code 是參數,大寫 CODE 就是你在上個頁面獲取的用戶同意授權碼。底下附上獲取 openid 和 access token 的後端範例程式碼:

private void GetOpenidAndAccessToken(string code)
{
    try
    {
        wx_userweixin wxuBll = new wx_userweixin();

        //构造获取openid及access_token的url
        WxPayData data = new WxPayData();

        data.SetValue("appid", wxuBll.GetAppId(wid));
        data.SetValue("code", code);
        data.SetValue("grant_type", "authorization_code");
        data.SetValue("secret", wxuBll.GetAppSecret(wid));

        string url = "https://api.weixin.qq.com/sns/oauth2/access_token?" + data.ToUrl();

        //请求url以获取数据
        string result = HttpService.Get(url);

        //保存access_token,用于收货地址获取
        JsonData jd = JsonMapper.ToObject(result);
        access_token = (string)jd["access_token"];

        //获取用户openid
        openid = (string)jd["openid"];
    }
    catch (Exception ex)
    {
        throw new WxPayException(ex.ToString());
    }
}

由於目前在使用中的微信開發案例,整體方案的架構,切割的挺細,而且還搭上樣板引擎,因此為了避免太多無關緊要的程式碼占用篇幅,這裡就暫且將處理 openid 和 acess code 的程式片段摘錄下來。

實戰案例 - 微信開發重點摘要之用戶唯一識別碼與網頁存取授權碼 (2)

上一篇:微信支付Demo下载(完整文档+使用说明)


下一篇:腾讯有了微信公众号,为何还要做qq公众号?