国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序手機(jī)號驗(yàn)證開發(fā)遇到問題

這篇具有很好參考價值的文章主要介紹了微信小程序手機(jī)號驗(yàn)證開發(fā)遇到問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

公司小程序項(xiàng)目中快速登錄需要實(shí)現(xiàn)微信用戶授權(quán)手機(jī)登錄、注冊功能。結(jié)果遇到了

invalid code hint: [zHkDmt0sf-MBjga] rid: 64e3259f-1091b953-7e10f1da

目錄

服務(wù)端文檔

文檔描述

返回信息

服務(wù)端代碼

遇到問題

排查問題

1.服務(wù)端用錯了appid serect

2.小程序端用錯了appid serect

3.服務(wù)端用錯了access_token

4.是否存在code使用了多次

5.非指定code

總結(jié)


服務(wù)端文檔

文檔描述

該接口需配合手機(jī)號快速驗(yàn)證或手機(jī)號實(shí)時驗(yàn)證能力一起使用,當(dāng)用戶同意后,可以通過 bindgetphonenumber 或 bindrealtimegetphonenumber 事件回調(diào)獲取到動態(tài)令牌code,再調(diào)用該接口將code換取用戶手機(jī)號。

注意:每個code只能使用一次,code的有效期為5min。

返回信息

微信小程序手機(jī)號驗(yàn)證開發(fā)遇到問題,微信,微信小程序,小程序

功能流程

微信小程序手機(jī)號驗(yàn)證開發(fā)遇到問題,微信,微信小程序,小程序

服務(wù)端代碼

這里需要處理小程序發(fā)送過來code后,請求小程序手機(jī)號驗(yàn)證接口;

參數(shù)需要先獲取小程序的access_token,和小程序獲得的code。

class WeChat
{
    /**
     * 小程序appid
     * @var string
     */
    protected static $min_AppId = '你的小程序 appid';

    /**
     * 小程序app secret
     * @var string
     */
    protected static $min_AppSecret = '你的小程序secret';


    private static $_self;

    private function __construct()
    {
        // TODO: Implement __construct() method.
    }

    /**
     * 外部直接調(diào)用靜態(tài)方法中的實(shí)例化
     * @return WeChat
     */
    public static function getInstance()
    {
        if (!self::$_self instanceof self) {
            self::$_self = new self();
        }
        return self::$_self;
    }

    private function __clone()
    {
        // TODO: Implement __clone() method.
    }

    /**
     * 獲取小程序接口調(diào)用憑證
     * @Author: Yjl
     * @Since: 2023/8/21 16:42
     * @return mixed
     */
    protected function getMiniAccessToken()
    {
        $APPID = self::$min_AppId;
        $SECRET = self::$min_AppSecret;
        $url = "https://api.weixin.qq.com/cgi-bin/token?appid={$APPID}&secret={$SECRET}&grant_type=client_credential";
        $res = $this->linkCurl($url, 'GET');
        $res = djson($res);
        if (isset($res['errcode']) && $res['errcode']) {
            return [‘status’ => 0,’msg’ => $res['errmsg'],’data’=> ‘’];
        }

        return [‘status’ => 1,’msg’ => ‘success’,’data’=> $res['access_token']];
    }

    /**
     * 微信小程序-手機(jī)號快速驗(yàn)證
     * @Author: Yjl
     * @Since: 2023/8/21 16:01
     * @param $code
     * @return mixed
     */
    public function getPhoneNumber($code)
    {
        $res = $this->getMiniAccessToken();
        if ($res['status'] != 1) return $res;

        $url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" . $res['data'];
        $param = ['code' => $code];
        $data = json_encode($param);
        $header = array();
        $header[] = 'content-type:application/json';
        $res = $this->linkCurl($url, 'POST', $data, $header);
        $res = djson($res);
        if (isset($res['errcode']) && $res['errcode']) {
            return [‘status’ => 0,’msg’ => $res['errmsg'],’data’=> ‘’];
        }

        return [‘status’ => 1,’msg’ => ‘success’,’data’=> $res];
    }


    /**
     * 請求接口返回內(nèi)容
     * @param $url :請求的URL地址
     * @param $method :請求方式POST|GET
     * @param $params :請求的參數(shù)
     * @param $header : 請求頭
     * @return bool|string
     */
    protected function linkCurl($url, $method, $params = array(), $header = array())
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_FAILONERROR, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        if (strpos("$" . $url, "https://") == 1) {
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        }
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        if ($method == "POST") {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        } else if ($params) {
            curl_setopt($ch, CURLOPT_URL, $url . '?' . http_build_query($params));
        }
        $response = curl_exec($ch);
        if ($response === false) {
            return false;
        }
        curl_close($ch);
        return $response;
    }
}

遇到問題

無效的code

invalid code hint: [zHkDmt0sf-MBjga] rid: 64e3259f-1091b953-7e10f1da

返回截圖如下:

微信小程序手機(jī)號驗(yàn)證開發(fā)遇到問題,微信,微信小程序,小程序

排查問題

1.服務(wù)端用錯了appid serect

經(jīng)過仔細(xì)排查代碼內(nèi)容,此項(xiàng)無問題。

2.小程序端用錯了appid serect

經(jīng)過前端同事對比,和原有小程序其他接口使用正常,此項(xiàng)可以排除。

3.服務(wù)端用錯了access_token

因?yàn)榉?wù)端也有公眾號操作,所以發(fā)現(xiàn)access_token用混了,改之后還是提示上方錯誤!

4.是否存在code使用了多次

通過前端打印請求日志和直接使用code請求微信接口,此項(xiàng)可排除。

5.非指定code

最后繼續(xù)研究文檔才發(fā)現(xiàn)此code非彼code;

怎么回事呢,項(xiàng)目中還有一個登錄獲取用戶信息的也需要小程序端生成code,然后服務(wù)端去獲取用戶信息實(shí)現(xiàn)登錄;跟手機(jī)號驗(yàn)證的code不是同一個code,前端給用混了。

文檔如下:

步驟1:需要將 button 組件 open-type 的值設(shè)置為 getPhoneNumber,當(dāng)用戶點(diǎn)擊并同意之后,通過 bindgetphonenumber 事件獲取回調(diào)信息;

步驟2:將 bindgetphonenumber 事件回調(diào)中的動態(tài)令牌code傳到開發(fā)者后臺,并在開發(fā)者后臺調(diào)用微信后臺提供的 phonenumber.getPhoneNumber 接口,消費(fèi)code來換取用戶手機(jī)號。每個code有效期為5分鐘,且只能消費(fèi)一次。

注:getPhoneNumber 返回的 code 與 wx.login 返回的 code 作用是不一樣的,不能混用。

總結(jié)

發(fā)現(xiàn)問題并解決了覺得很簡單,但當(dāng)時真的耽誤了一天;為什么開始沒發(fā)現(xiàn)這個問題,只能說是前后端聯(lián)調(diào)的鍋;在這里記錄一下吧,之前從網(wǎng)上找解決方法的時候看到很多原因,我這里也提供一種解決思路吧;最后還是要多看文檔,多做測試,多溝通。文章來源地址http://www.zghlxwxcb.cn/news/detail-667096.html

到了這里,關(guān)于微信小程序手機(jī)號驗(yàn)證開發(fā)遇到問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序 - 2023 年最新授權(quán)獲取用戶手機(jī)號詳細(xì)教程,完美解決 getPhoneNumber 獲取不到 code 的問題(老項(xiàng)目使用手機(jī)號快速驗(yàn)證組件,打印授權(quán)后沒有code字段,拿不到cod)

    微信小程序 - 2023 年最新授權(quán)獲取用戶手機(jī)號詳細(xì)教程,完美解決 getPhoneNumber 獲取不到 code 的問題(老項(xiàng)目使用手機(jī)號快速驗(yàn)證組件,打印授權(quán)后沒有code字段,拿不到cod)

    由于官方修改了 “獲取用戶手機(jī)號” 規(guī)則,導(dǎo)致網(wǎng)上幾乎所有教程全部失效,本文來做最新詳細(xì)教程。 2023年8月往后(官方廢棄了原來 “免費(fèi)” 獲取用戶手機(jī)號的相關(guān)方法 API,導(dǎo)致了大量小程序原獲取手機(jī)號的方式失效報(bào)錯),本文是最新微信小程序 “收費(fèi)” 獲取用戶手

    2024年02月17日
    瀏覽(200)
  • 微信小程序:登錄授權(quán),根據(jù)手機(jī)號獲取憑證,獲取用戶手機(jī)號

    1.微信小程序授權(quán) controller 層代碼 wxUtils 工具類 2.微信小程序,用戶手機(jī)號獲取 微信小程序,根據(jù)code(code為手機(jī)號獲取憑證)獲取用戶加密手機(jī)號 獲取用戶手機(jī)號方法

    2024年02月14日
    瀏覽(28)
  • 微信小程序獲取手機(jī)號

    微信小程序獲取手機(jī)號

    1、先新建vue頁面 ?打開看到頁面是下圖 在method定義方法 ? ?源碼: node.js文件下載解壓后啟動node app.js打開服務(wù)器即可 點(diǎn)擊下載

    2024年02月02日
    瀏覽(19)
  • 微信小程序 - 實(shí)現(xiàn)手機(jī)號登錄--授權(quán)并獲取手機(jī)號保存至本地

    微信小程序 - 實(shí)現(xiàn)手機(jī)號登錄--授權(quán)并獲取手機(jī)號保存至本地

    微信官方文檔 | 獲取手機(jī)號 這是服務(wù)端的 ?這是我們前端獲取手機(jī)號需要給接口傳遞的兩個參數(shù) ? ?注意: 參數(shù)一: 獲取access_token需要用到小程序密鑰,這個需要從 服務(wù)端獲取 ,也就是需要請求后端接口獲取access_token,千萬不要將小程序密鑰寫在前端代碼中, 必須 要從服

    2024年02月03日
    瀏覽(34)
  • 微信小程序手機(jī)號授權(quán)登錄

    微信小程序手機(jī)號授權(quán)登錄

    微信小程序,手機(jī)號授權(quán)登錄需求。 大體流程是這樣的: 小程序端使用 getPhoneNumber 向微信平臺獲取授權(quán) 通過微信授權(quán)后,小程序端接收微信授權(quán)后的回調(diào) 小程序攜帶微信的回調(diào)請求自己的服務(wù)端 服務(wù)端請求微信獲取手機(jī)號并將手機(jī)號回調(diào)給小程序端 具體步驟和代碼如下:

    2024年02月13日
    瀏覽(21)
  • 微信小程序手機(jī)號授權(quán)開始收費(fèi)

    微信小程序手機(jī)號授權(quán)開始收費(fèi)

    該能力旨在幫助開發(fā)者向用戶發(fā)起手機(jī)號申請,并且必須經(jīng)過用戶同意后,開發(fā)者才可獲得由平臺驗(yàn)證后的手機(jī)號,進(jìn)而為用戶提供相應(yīng)服務(wù)。 該能力與手機(jī)號實(shí)時驗(yàn)證組件的區(qū)別為: 手機(jī)號快速驗(yàn)證組件,平臺會對號碼進(jìn)行驗(yàn)證,但不保證是實(shí)時驗(yàn)證; 手機(jī)號實(shí)時驗(yàn)證組

    2024年02月14日
    瀏覽(24)
  • 微信小程序:獲取用戶手機(jī)號(前端)

    獲取手機(jī)號的開發(fā)過程可以分為三部分:微信前端設(shè)置,微信js文件編寫,服務(wù)器端程序開發(fā). 其中微信前端最為簡單,在獲取手機(jī)號的過程中我們必須經(jīng)過用戶授權(quán),在wxml文件中加入如下代碼: 然后我們需要編寫js文件,當(dāng)用戶允許獲取手機(jī)號后調(diào)用相關(guān)邏輯,將手機(jī)號加密信息發(fā)

    2024年02月06日
    瀏覽(22)
  • 企業(yè)微信小程序獲取手機(jī)號?

    企業(yè)微信小程序獲取手機(jī)號?

    一、確定小程序是開發(fā)企業(yè)內(nèi)部應(yīng)用,還是開發(fā)第三方應(yīng)用。 ?如果是開發(fā)企業(yè)內(nèi)部應(yīng)用,也就是應(yīng)用自建的可以使用 ??wx.qy.getMobile 這個api 去獲取手機(jī)號 wx.qy.getMobile 調(diào)用前提: 1、必須先調(diào)用過wx.qy.login,且session_key未過期,開發(fā)者可調(diào)用checkSession 檢查當(dāng)前登錄態(tài)( 需要

    2024年02月07日
    瀏覽(17)
  • Java - 微信小程序授權(quán)手機(jī)號登錄

    ? ? ? ? 最近做了一個關(guān)于商城的項(xiàng)目,B端選用若依的開源框架,C端還是vue前后端分離。其中C端主要是小程序的形式,所以想著來總結(jié)一下對接微信小程序登錄中Java部分遇到的坑即代碼分享! 廢話不多說,直接上代碼! 1、controller 層代碼 ? ? ? ?? 入?yún)⑽疫@邊是直接使用

    2024年02月04日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包