收藏
回答

微信公众号回调的redirect_url不能携带参数?

各种尝试:

  1. 回调的url + 携带的参数整体进行urlEncode编码,但是不行。
    现象:在微信app中复制链接的时候,可以看到code,但是看不到携带的参数(一个参数都没有)

  2. 先将携带的参数整体进行urlEncode编码,再将编码后的参数和回调的url再次编码。但是不行

    现象:在微信app中复制链接的时候,看不到code,只能看到一堆加密后的url + 参数

  3. 先将携带的参数分别进行urlEncode编码,再讲编码后的参数与回调的url整体编码,但是不行

    现象:在微信app中复制链接的时候,看不到code,只能看到一堆加密后的url + 参数

回答关注问题邀请回答
收藏

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-10-10

    如果都不行的话,那就换个思路

    像 https://aaa.bbb.com/xxx/xxx/a.1_b.2 => a=1 b=2

    还有个思路,利用state参数,请求授权前

    以php为例,将我们的参数存在以$state为key的$_SESSION里

    session_start()

    $state = time().rand(1000, 9999); //时间戳拼接随机4位数

    $_SESSION[$state] = ['a'=>1, 'b'=>2];

    $redirect_uri = 'https://aaa.bbb.com/xxx/xxx';

    $auth_url = 'https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri='.urlencode($redirect_uri).'&response_type=code&scope=SCOPE&state='.$state.'#wechat_redirect';

    等到回调里获取到返回的state值,在从$_SESSION里取key为state值的参数,进行下一步的业务


    2019-10-10
    有用
    回复 1
    • 随风无影
      随风无影
      2019-10-10
      谢谢
      2019-10-10
      回复
  • 随风无影
    随风无影
    2019-10-10

    如何才能在redirect_url中携带参数???是不是是我携带的参数的方式不正确,导致的?

    2019-10-10
    有用
    回复 4
    • 刁_Kyle
      刁_Kyle
      2019-10-10
      你是要做微信静默登录?
      2019-10-10
      回复
    • 随风无影
      随风无影
      2019-10-10回复刁_Kyle
      不是的,静默 + 手动授权,都需要
      2019-10-10
      回复
    • 随风无影
      随风无影
      2019-10-10回复刁_Kyle
      我就是后端撒。。。。我调用微信公众号的回调,最多可以拿到code,但是参数丢失。。。。还有什么可能的原因吗
      2019-10-10
      回复
    • 刁_Kyle
      刁_Kyle
      2019-10-10
      2019-10-10
      回复
登录 后发表内容
问题标签