国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何判斷用戶是否已關注公眾號

everfly / 3187人閱讀

摘要:一微信公眾平臺配置獲取,添加白名單登錄微信公眾平臺,進入基本配置。二后端實現(xiàn)微信開放接口全局返回碼說明參考獲取全局此有效期為小時,可以暫存起來,過期后需要重新獲取。用戶關注時間,為時間戳。

一、微信公眾平臺配置 1. 獲取appid, appsecret,添加白名單

登錄微信公眾平臺,進入基本配置。開發(fā)中需要用到兩個參數(shù),appId和appSecret(appSecret只展示一次,需保存下來,否則需要重置獲取)。
獲取access_token時需要添加IP白名單。

點擊查看

點擊修改

2. 添加網(wǎng)頁授權(quán)

進入公眾號設置=》功能設置=》網(wǎng)頁授權(quán)域名

點擊設置,input框中輸入授權(quán)回調(diào)頁的域名參考第1點(只能填寫一個),下載第3點中的txt文檔,上傳至服務器的根目錄。

二、php后端實現(xiàn)

微信開放接口全局返回碼說明參考:https://mp.weixin.qq.com/wiki...

1. 獲取全局token

此token有效期為2小時,可以暫存起來,過期后需要重新獲取。
PS: 項目中必須走同一個接口,否則容易互刷導致過期。

public static function getToken($appid, $appsecret){
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
    return Curl::callWebServer($url);
}

正確返回結(jié)果:
    {
        "access_token": "ACCESS_TOKEN",
        "expires_in": 7200
    }
    返回結(jié)果參數(shù)說明:
    參數(shù)              說明
    access_token      獲取到的全局token
    expires_in        憑證有效時間,單位:秒
    
錯誤返回結(jié)果:
    {"errcode": 40013, "errmsg": "invalid appid"}
    返回結(jié)果參數(shù)說明:
    返回碼    說明
    -1       系統(tǒng)繁忙,此時請開發(fā)者稍候再試
    0        請求成功
    40001    AppSecret錯誤或者AppSecret不屬于這個公眾號,請開發(fā)者確認        AppSecret的正確性
    40002    請確保grant_type字段值為client_credential
    40164    調(diào)用接口的IP地址不在白名單中,請在接口IP白名單中進行設置。(小程序及小游戲調(diào)用不要求IP地址在白名單內(nèi)。)
2. 獲取用戶關聯(lián)公眾號的openid

分兩步,先要獲取到用戶對公眾號的授權(quán)碼,然后拿這個碼去獲取臨時access_token和openid。

獲取用戶授權(quán)碼

public static function getCode($appId, $redirect_uri, $state=1, $scope="snsapi_base", $response_type="code"){
    $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appId."&redirect_uri=".$redirect_uri."&response_type=".$response_type."&scope=".$scope."&state=".$state."#wechat_redirect";
    header("Location: ".$url, true, 301);
}

正確返回結(jié)果:
    返回code碼,并且跳轉(zhuǎn)回調(diào)頁面$redirect_uri
    
錯誤返回結(jié)果:
    {"errcode": 10003, "errmsg": "redirect_uri域名與后臺配置不一致"}
    返回結(jié)果參數(shù)說明:
    返回碼    說明
    10003    redirect_uri域名與后臺配置不一致
    10004    此公眾號被封禁
    10005    此公眾號并沒有這些scope的權(quán)限
    10006    必須關注此測試號
    10009    操作太頻繁了,請稍后重試
    10010    scope不能為空
    10011    redirect_uri不能為空
    10012    appid不能為空
    10013    state不能為空
    10015    公眾號未授權(quán)第三方平臺,請檢查授權(quán)狀態(tài)
    10016    不支持微信開放平臺的Appid,請使用公眾號Appid

通過getCode獲取到的code換取網(wǎng)頁授權(quán)的access_token和openid

public static function getAccessToken($code, $appid, $appsecret, $grant_type="authorization_code"){
    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=".$grant_type."";
    return Curl::callWebServer($url);
}
   
正確返回結(jié)果:
    { 
        "access_token": "ACCESS_TOKEN",
        "expires_in": 7200,
        "refresh_token": "REFRESH_TOKEN",
        "openid": "OPENID",
        "scope": "SCOPE"
    }
    返回參數(shù)說明
    參數(shù)            描述
    access_token    網(wǎng)頁授權(quán)接口調(diào)用憑證,注意:此access_token與基礎支持的access_token不同
    expires_in    access_token接口調(diào)用憑證超時時間,單位(秒)
    refresh_token    用戶刷新access_token
    openid    用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網(wǎng)頁,也會產(chǎn)生一個用戶和公眾號唯一的OpenID
    scope    用戶授權(quán)的作用域,使用逗號(,)分隔
    
錯誤返回結(jié)果:
    {"errcode":40029, "errmsg":"invalid code"}
3. 獲取用戶信息

使用第2步中獲取的openId和第1步中獲取的token去獲取用戶信息

public static function getUserInfo($openId, $token){
    $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openId."&lang=zh_CN";
    return Curl::callWebServer($queryUrl, "", "GET");
}
正確返回結(jié)果:
    {
        "subscribe": 1, 
        "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
        "nickname": "Band", 
        "sex": 1, 
        "language": "zh_CN", 
        "city": "廣州", 
        "province": "廣東", 
        "country": "中國", 
        "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
        "subscribe_time": 1382694957,
        "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
        "remark": "",
        "groupid": 0,
        "tagid_list":[128,2],
        "subscribe_scene": "ADD_SCENE_QR_CODE",
        "qr_scene": 98765,
        "qr_scene_str": ""
    }
    返回參數(shù)說明:
        參數(shù)            說明
        subscribe       用戶是否訂閱該公眾號標識,值為0時,代表此用戶沒有關注該公眾號,拉取不到其余信息。
        openid          用戶的標識,對當前公眾號唯一
        nickname        用戶的昵稱
        sex             用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知
        city            用戶所在城市
        country         用戶所在國家
        province        用戶所在省份
        language        用戶的語言,簡體中文為zh_CN
        headimgurl      用戶頭像,最后一個數(shù)值代表正方形頭像大小(有0、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空。若用戶更換頭像,原有頭像URL將失效。
        subscribe_time  用戶關注時間,為時間戳。如果用戶曾多次關注,則取最后關注時間
        unionid         只有在用戶將公眾號綁定到微信開放平臺帳號后,才會出現(xiàn)該字段。
        remark          公眾號運營者對粉絲的備注,公眾號運營者可在微信公眾平臺用戶管理界面對粉絲添加備注
        groupid         用戶所在的分組ID(兼容舊的用戶分組接口)
        tagid_list      用戶被打上的標簽ID列表
        subscribe_scene 返回用戶關注的渠道來源,ADD_SCENE_SEARCH 公眾號搜索,ADD_SCENE_ACCOUNT_MIGRATION 公眾號遷移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 掃描二維碼,ADD_SCENEPROFILE LINK 圖文頁內(nèi)名稱點擊,ADD_SCENE_PROFILE_ITEM 圖文頁右上角菜單,ADD_SCENE_PAID 支付后關注,ADD_SCENE_OTHERS 其他
        qr_scene        二維碼掃碼場景(開發(fā)者自定義)
        qr_scene_str    二維碼掃碼場景描述(開發(fā)者自定義)

錯誤結(jié)果:
    {"errcode":40013,"errmsg":"invalid appid"}
三、使用

判斷是否關注過,此處為入口:

public function isConcern($appId, $appSecret) {
    $param = ""; // 如果有參數(shù)
    $this->getCode($appId, U("callback", "param=".$param), 1 ,"snsapi_base");
}

授權(quán)后回調(diào)

public function callback(){
    $isconcern = 0;
    $code = $this->_get("code");
    $param = $this->_get("param");
    $appId = C("appId"); // config中配置
    $appSecret = C("appSecret");
    $accessTokenInfo = $this->getAccessToken($code, $appId, $appSecret);
    $openId = $accessTokenInfo["openid"];
    $accessToken = $accessTokenInfo["access_token"];
    $token = $this->getToken($appId, $appSecret);
    $userInfo = $this->getUserInfo($openId, $token["access_token"]);
    if($userInfo["subscribe"] == 1){
        $this->assign("userInfo", $userInfo);
        $isconcern = 1; // 已關注
    } else {
        $isconcern = 0; // 未關注
    }
    $this->assign("openid", $openId);
    $this->display("page");
}

此時頁面上可以獲取到userInfo和isconcern,isconcern為1時表示已關注公眾號,否則未關注。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28810.html

相關文章

  • 如何判斷用戶是否關注公眾

    摘要:一微信公眾平臺配置獲取,添加白名單登錄微信公眾平臺,進入基本配置。二后端實現(xiàn)微信開放接口全局返回碼說明參考獲取全局此有效期為小時,可以暫存起來,過期后需要重新獲取。用戶關注時間,為時間戳。 一、微信公眾平臺配置 1. 獲取appid, appsecret,添加白名單 登錄微信公眾平臺,進入基本配置。開發(fā)中需要用到兩個參數(shù),appId和appSecret(appSecret只展示一次,需...

    ConardLi 評論0 收藏0
  • &運算符的巧妙應用

    摘要:程序輸出原理轉(zhuǎn)化為進制為轉(zhuǎn)化為進制為即是與將和中都為的位設為位數(shù)不夠的補即與運算結(jié)果轉(zhuǎn)化為十進制結(jié)果為應用需求這是一個設置消息提醒的功能。這里有三種提醒方式郵箱提醒短信提醒微信公眾號提醒,用戶可以通過開關按鈕控制某種提醒方式是開啟還是關閉。 轉(zhuǎn)自我的github 語法 &:and,按位與。以$a & $b為例,將$a和$b轉(zhuǎn)化為二進制后,都為1的位設為1。 程序 $a = 6; $b ...

    Coding01 評論0 收藏0
  • vue + 微信獲取用戶信息

    摘要:分享頁面的實際鏈接當前頁面的鏈接需要編碼公眾號的當前頁面的鏈接,需要編碼其他值均不用改動點擊允許后跳轉(zhuǎn)的鏈接是。此處的可以用來調(diào)取接口獲取微信用戶的相關信息每次用戶授權(quán)帶上的將不一樣,只能使用一次,分鐘未被使用自動過期。 vue + 微信獲取用戶信息 本次項目做到一個點贊功能,即分享出去一個頁面給微信好友,微信好友點開并點贊,需要將點贊用戶的微信昵稱,微信頭像以及微信openid,微信...

    luoyibu 評論0 收藏0
  • vue + 微信獲取用戶信息

    摘要:分享頁面的實際鏈接當前頁面的鏈接需要編碼公眾號的當前頁面的鏈接,需要編碼其他值均不用改動點擊允許后跳轉(zhuǎn)的鏈接是。此處的可以用來調(diào)取接口獲取微信用戶的相關信息每次用戶授權(quán)帶上的將不一樣,只能使用一次,分鐘未被使用自動過期。 vue + 微信獲取用戶信息 本次項目做到一個點贊功能,即分享出去一個頁面給微信好友,微信好友點開并點贊,需要將點贊用戶的微信昵稱,微信頭像以及微信openid,微信...

    Corwien 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<