微信公众号回调的redirect_url不能携带参数?
发布于 7 年前 作者 mxiao 8072 次浏览 来自 官方Issues

各种尝试:

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

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

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

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

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

2 回复

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

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

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值的参数,进行下一步的业务

回到顶部