混合應用 微信登錄授權 微信登錄認證失敗 ios PGWXAPI錯誤-1 code:-100 / 安卓 message:invalid appsecret innerCode:40125


最近項目需要做微信登錄,於是利用HTML5+ API Reference的OAuth模塊管理客戶端的用戶登錄授權驗證功能,允許應用訪問第三方平台的資源。
(鏈接:https://www.dcloud.io/docs/api/zh_cn/oauth.html)
通過HBuilder真機預覽,可以調起微信登錄並獲取到信息,但是在線打包后雖然可以調起微信,但是授權后拿不到成功的返回信息。
ios上報錯圖如下

安卓上報錯圖如下

去論壇上搜索解決方法,大多是說需要重置appsecret就可以解決,於是去微信平台重置appsecret后,發現ios上確實可以,但是
安卓上還是繼續報上圖中的錯誤,再去論壇上找答案,有說微信分享和微信登錄的appsecret存在被覆蓋的現象,所以將兩個appsecret值同步后

解決問題。(這里發現微信分享里的appsecret值隨便填都可以分享成功,但如果需要微信分享和微信登錄同時存在的話,那最好還是保證兩個值相同)

附代碼:(如果需要做登錄測試,那么在下次登錄前先注銷登錄一次,否則會直接拿登錄信息,有時換了賬號拿的信息還是上一用戶的

 

$scope.wxLoginFn = function(){
        getService()
    }

    // 微信授權登錄對象
    var aweixin = null;
    // 當前環境支持的所有授權登錄對象
    var auths = null;

    // 獲取登錄授權認證服務列表,單獨保存微信登錄授權對象
    // 5+APP在plusready事件中調用,uni-app在vue頁面的onLoad中調用
    function getService(){
        plus.oauth.getServices(function(services){
            plus.nativeUI.alert("services:"+JSON.stringify(services));
            auths = services;
            authLogin()
        }, function(e){
            plus.nativeUI.alert("獲取登錄授權服務列表失敗:"+JSON.stringify(e));
        } );
    }

// 通常登錄前需要先調用authorize方法進行授權 // 獲取微信登錄授權對象后可進行登錄認證操作 function authLogin(){ plus.nativeUI.alert('auths:'+JSON.stringify(auths)) for(let i = 0; i < auths.length; i++){ if(auths[i].id == 'weixin'){ aweixin = auths[i]; break; } } plus.nativeUI.alert('aweixin:'+JSON.stringify(aweixin)) if(!aweixin){ plus.nativeUI.alert("當前環境不支持微信登錄"); return; } if(!aweixin.authResult){ aweixin.login(function(e){ plus.nativeUI.alert("登錄認證成功!"+JSON.stringify(e)); authUserInfo() }, function(e){ plus.nativeUI.alert("登錄認證失敗: "+JSON.stringify(e)); } ); }else{ plus.nativeUI.alert("已經登錄認證!"); } } // 調用authorize、login先授權登錄認證 // 注銷登錄認證 function authLogout(){ console.log('注銷登錄'+JSON.stringify(aweixin)); if(!aweixin){ plus.nativeUI.alert("當前環境不支持微信登錄"); return; } aweixin.logout(function(e){ plus.nativeUI.alert("注銷登錄認證成功!"+JSON.stringify(e)); }, function(e){ plus.nativeUI.alert("注銷登錄認證失敗: "+JSON.stringify(e)); }); } // 通常登錄前需要先調用authorize方法進行授權,調用login方法進行登錄認證 // 獲取微信登錄授權對象后獲取用戶信息操作 function authUserInfo(){ if(!aweixin){ plus.nativeUI.alert("當前環境不支持微信登錄"); return; } if(aweixin.authResult){ aweixin.getUserInfo( function(e){ plus.nativeUI.alert("獲取用戶信息成功:"+JSON.stringify(aweixin.userInfo)); }, function(e){ plus.nativeUI.alert("獲取用戶信息失敗: "+JSON.stringify(e)); } ); }else{ plus.nativeUI.alert("未登錄認證!"); } } // 注銷微信登錄 $scope.exitWxLoginFn = function(){ authLogout(); }

 

 

 

ps:不要隨便重置appsecret,最好先確認項目中是否有用到,否則重置后可能會影響到支付分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM