jtshushu
jtshushu
  • 发布:2019-11-30 16:23
  • 更新:2021-09-28 10:24
  • 阅读:10280

【已解决】uni-app公众号开发怎么得到code

分类:uni-app

/**  
 * 根据参数名 获取 URL 路径中的参数  
 * @param {String} name 要读取的参数名称  
 */  
function getUrlParam (name) {   
  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')  
  let url = window.location.href.split('#')[0]   
  let search = url.split('?')[1]  
  if (search) {  
    var r = search.substr(0).match(reg)  
    if (r !== null) return unescape(r[2])  
    return null  
  } else {  
    return null  
  }  
}  

//getUrlParam('code') 调用一下就能拿到 code 结果,然后用这个 code 去调后台的接口让后台去微信后台拿openID。  

function wxAuthorize() {  
    let link = window.location.href;  
   // let params = this._getUrlParams(link);  // 地址解析  
   //console.log(link);  

    let params =getUrlParam('code');  // 地址解析  
        console.log(params);  
       // 已经授权登录过的就不用再授权了  
    // if (store.state.token) return;  

    // 如果拿到code,调用授权接口,没有拿到就跳转微信授权链接获取   
   // if (params.code) {  
    if (params) {  
        console.log("121212");  
        api.wxAuth(params.code); // 调用后台接口,授权   
    }else {  
        console.log("22221");  

        let appid = 'xxxsdfa1';  
        //1.使用encodeURIComponent以及JSON.stringify()方法对对象进行字符串化和编码,这样可以控制url参数的长度,参考示例代码(uni-app书写方式,微信小程序自己改。)  

        let uri = encodeURIComponent(link);  
        //2.接受信息的页面使用JSON.parse()以及decodeURIComponent()接收和解码参数。    

        //snsapi_base   //snsapi_base    scope = snsapi_base(不弹出授权页面,直接跳转,只能获取用户 openid )。  
        //snsapi_userinfo  弹出  
        let authURL = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_base&state=123#wechat_redirect`;  

        window.location.href = authURL;  

    }  
}

这个跳转得不到code 的值 求大神解决

2019-11-30 16:23 负责人:无 分享
已邀请:
口区

口区 -

你params取的不就是code了吗,为啥还params.code。不是应该api.wxAuth(params)吗

  • jtshushu (作者)

    你好已经取得了 谢谢 上面是正确的

    2019-12-02 10:08

3***@qq.com

3***@qq.com

为什么我的获取不了code

  • jtshushu (作者)

    上面是对的 ! 打包时候注意 manifest.json这个文件中 路由模式hash

    运行路径 要对应 /h5/ 这里的 /h5/你可以自己写

    2020-03-09 09:20

  • 1***@163.com

    回复 jtshushu: 你好,有个问题咨询下,路由模式是hash,授权后跳转的地址变成了 https://www.test.com/?code=xxxx#/pages/index/index,这个 ?code=xxxx 怎么做才能放到最后呢

    2020-05-06 18:19

  • jtshushu (作者)

    回复 1***@163.com:拼接到域名上

    2020-05-06 18:23

  • 1***@163.com

    回复 jtshushu: 只能自己重新拼接这个url么

    2020-05-06 18:28

  • jtshushu (作者)

    回复 1***@163.com: 是的

    2020-05-06 18:32

  • 1***@163.com

    回复 jtshushu: ok,谢了

    2020-05-06 18:34

猿小白

猿小白

请问这是用uni-app框架吗

  • jtshushu (作者)

    是的 uniapp框架

    2020-04-21 09:15

fatesgo

fatesgo

您好,请问方便加下好友吗,有公众号开发的疑问

  • 前端一枚

    回复 jtshushu: 你的hash模式使用公众号授权会出现页面跳转多次的问题吗?我的感觉跳转了6次

    2020-05-14 11:23

  • jtshushu (作者)

    回复 前端一枚: 不会多次的

    2020-05-14 11:23

  • 前端一枚

    回复 jtshushu: https://www.test.com/?code=xxxx#/pages/index/index?homeId=1 授权回来的回调域名是这样的,但是我想要https://www.test.com/#/pages/index/index?homeId=1,就需要域名重新拼接,拼接好之后要replace一下,

    2020-05-14 11:28

  • jtshushu (作者)

    回复 前端一枚: 路由模式是hash,授权后跳转的地址变成了 https://www.test.com/?code=xxxx#/pages/index/index,这个 ?code=xxxx

    2020-05-14 11:31

  • 前端一枚

    回复 jtshushu: 对,我需要去掉?code=xxxx就获取了当前路径然后重新拼接了一下,然后replace

    2020-05-14 11:34

1213243

1213243

楼主有写好的登陆页面源程序嘛,能发一份嘛,万分感谢

  • jtshushu (作者)

    首先要确保你的路径是有

    ?code=xxxx

    然后在取出 code

    2020-07-06 11:41

jtshushu

jtshushu (作者) - 擅长:PHP-Thinkphp Python MUI UniApp Vuejs Bootstrap Jq Logo设计 广告设计 网页设计 有项目上需要联系我微信号:jtshushu66

注意
//snsapi_userinfo 弹出
要用这个方法解决问题
let authURL = https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_userinfo &state=123#wechat_redirect;

jtshushu

jtshushu (作者) - 擅长:PHP-Thinkphp Python MUI UniApp Vuejs Bootstrap Jq Logo设计 广告设计 网页设计 有项目上需要联系我微信号:jtshushu66

let authURL = https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect;

  • 2***@qq.com

    设了模式还是获取不到啊

    2020-08-27 15:27

  • 2***@qq.com

    是微信公众号后台没有配置,分享和定位做好了,并不表示后台配好了,网页授权又是另一个配置

    2020-08-27 18:28

  • jtshushu (作者)

    回复 2***@qq.com: 我的适用于公众号 开发的

    2020-08-27 18:36

  • 2***@qq.com

    导致页面总共加载2次,能弄成加载一次么。。。

    2020-08-28 16:39

  • jtshushu (作者)

    回复 2***@qq.com: 会这样的,因为打开页面获取code 之前的页面挑战到有code的地方才可以,拿到openid

    2020-08-29 09:16

2***@qq.com

2***@qq.com - 周周周

大佬 有没有源码 分享一下 太难了

皮皮虾模板库

皮皮虾模板库

兄弟如果我想重新拿个新code怎么改啊

该问题目前已经被锁定, 无法添加新回复