宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動(dòng)態(tài)
精選推薦

關(guān)于微信小程序生產(chǎn)環(huán)境體驗(yàn)版獲取不到openId的問題

管理 管理 編輯 刪除

我們知道openid是微信用戶驗(yàn)證的重要標(biāo)識(shí),支付功能嚴(yán)重依賴這個(gè)東西,之前我們做微信支付的時(shí)候是通過在微信客戶端直接調(diào)用官方接口,通過傳code參數(shù)來調(diào)用,下面這樣

getOpenId(){  //獲取用戶的openid
          let _this=this;
          wx.login({
            success(res) {
                  if (res.code) {
                  // 發(fā)起網(wǎng)絡(luò)請(qǐng)求
                  wx.request({
                    url: 'https://api.weixin.qq.com/sns/jscode2session',
                    data: {
                        appid:appId,  //開發(fā)者appid
                        secret:secret, //開發(fā)者AppSecret(小程序密鑰)    
                        grant_type:"authorization_code",  //默認(rèn)authorization_code
                        js_code: res.code    //wx.login登錄獲取的code值
                    },
                    success(res) {
                      _this.userinfo.openid=res.data.openid;
                      _this.userinfo.session_key=res.data.session_key;                         
                }
                  })
                } else {
                  console.log('登錄失?。? + res.errMsg)
                }

            }
          })
        }

這樣做理論上也可以拿到openid,但是這里有一個(gè)神坑,就是在小程序開發(fā)者工具直接測試,使用真機(jī)調(diào)試,都沒有任何問題,但是一旦上傳代碼,使用小程序的體驗(yàn)版測試的話,就拿不到openid,奇怪的是,如果在體驗(yàn)版開啟調(diào)試模式,又可以拿到,這是一個(gè)非常腦殘的問題,直接影響就是開發(fā)環(huán)境和生產(chǎn)環(huán)境在代碼相同的情況下,體現(xiàn)的效果不一樣,微信官方也沒有任何合理解釋,經(jīng)過很長時(shí)間的查找資料,獲取openid不能直接在微信客戶端來獲取,應(yīng)該改用后端來獲取openid然后再返回給前端。

所以應(yīng)該用Django來獲取openid

def getopenid(request):
    res = {}
    appId = request.GET.get('appId')#開發(fā)者appid
    secret = request.GET.get('secret')#開發(fā)者AppSecret(小程序密鑰)  
    grant_type = "authorization_code"  #默認(rèn)authorization_code
    js_code = request.GET.get('js_code')#wx.login登錄獲取的code值

    data = {'appId':appId,'secret':secret,"grant_type":grant_type,"js_code":js_code}
    url = "https://api.weixin.qq.com/sns/jscode2session"
    jscode = requests.get(url,data)
    res = jscode.json()
    return JsonResponse(res,safe=False,json_dumps_params={'ensure_ascii':False})

而前端獲取openid的方法改造成請(qǐng)求本地接口

getOpenId(){  //獲取用戶的openid
          let _this=this;
          wx.login({
            success(res) {
                  if (res.code) {
                  // 發(fā)起網(wǎng)絡(luò)請(qǐng)求,改造成請(qǐng)求本地接口獲取openid,規(guī)避體驗(yàn)版獲取不到的問題
                  wx.request({
                    url: 'http://localhost:8000/getopenid',
                    data: {
                        appid:appId,  //開發(fā)者appid
                        secret:secret, //開發(fā)者AppSecret(小程序密鑰)  
                        grant_type:"authorization_code",  //默認(rèn)authorization_code
                        js_code: res.code    //wx.login登錄獲取的code值
                    },
                    success(res) {
                      _this.userinfo.openid=res.data.openid;
                      _this.userinfo.session_key=res.data.session_key;               
                }
                  })
                } else {
                  console.log('登錄失敗!' + res.errMsg)
                }

            }
          })
        }

至此才解決了這個(gè)問題,這件事情說明一個(gè)問題,就是做任何事情都不能想當(dāng)然,同時(shí)開發(fā)小程序的時(shí)候,真機(jī)測試沒有問題并不代表沒有問題,一定要到生產(chǎn)環(huán)境測一下,另外最后一個(gè)忠告,微信小程序獲取openid一定要在server端獲取再返回給前端,千萬不要圖省事在前端直接獲取openid


請(qǐng)登錄后查看

CRMEB-慕白寒窗雪 最后編輯于2023-04-26 16:31:18

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
4864
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動(dòng)態(tài) 精選推薦 首頁頭條 首頁動(dòng)態(tài) 首頁推薦
取 消 確 定
回復(fù)
回復(fù)
問題:
問題自動(dòng)獲取的帖子內(nèi)容,不準(zhǔn)確時(shí)需要手動(dòng)修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請(qǐng)輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊(cè)
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服