https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN
根据教程,小程序授权给第三方平台有以下这些步骤:
步骤1:第三方平台方获取预授权码(pre_auth_code)
步骤2:引入用户进入授权页
步骤3:用户确认并同意登录授权给第三方平台方
步骤4:授权后回调URI,得到授权码(authorization_code)和过期时间
步骤5:利用授权码调用公众号或小程序的相关API
在步骤3:用户确认并同意登录授权给第三方平台方,同一个微信下关联了几个不同的小程序,选择不同的小程序去授权,
在步骤4中,微信扫码授权操作时是两个不同的小程序,第三方平台的回调URI的auth_code参数都是相同。
第三方平台的appid: wx553ca628898508e0
麻烦了。谢谢
再强调一遍,第三方平台的回调URI的auth_code跟自身的调用逻辑没有任何关系,auth_code生成逻辑都是在第三方平台里面
能不能帮忙把这个问题反馈给第三方平台的开发或者测试?
他们按照我说的步骤,同一个微信号关联几个小程序,测试一下不同小程序授权操作,就知道是不是有问题了
第三方平台的回调URI的auth_code跟自身的调用逻辑没有任何关系。
步骤如下:
我后台通过component_app_id生成授权二维码 -> 微信扫码二维码 -> 微信界面出现该微信关联的所有小程序 -> 选择不同的小程序授权 -> 第三方后台回调URI返回auth_code
其中第一步生成授权二维码是我后台的逻辑,这个跟小程序appid没有任何关系,不会影响第三方后台回调URI返回auth_code。
其他的步骤都是微信以及第三方平台的业务逻辑。微信以及第三方平台的逻辑控制了回调URI返回auth_code。
这个问题之所以比较少出现,是因为一般情况下,一个微信号只关联一个小程序。
我因为是在测试不同小程序授权的场景,所以同一个微信号注册了多个小程序,在实际操作中才发现不同的小程序授权,回调URI返回auth_code都相同的错误。
@林超 , 问题进展如何?没有回复吗?
刚刚又试了下,微信扫码授权操作时是两个不同的小程序,第三方平台的回调URI的auth_code参数都是相同。
回调URI:https://lantingjie.cn/wechat/auth/jump?shopId=5wtQr0lwDuPq8i2pYVN&parentShopId=shp_rZTmLWdQCvPU3xt1kPL&userId=3&shopName=%E6%B5%B7%E7%8F%A0%E5%BA%97&auth_code=queryauthcode@@@emUDgagWI3FjZ4BAaYKQI-G0_FOkYOSs0zEhTw5GM1aH5pw21BFKCZ5i_UxdU_5-D5Nbw2MRxC3D75iSgPBb5Q&expires_in=3600
2018-04-23 16:28:55.936 INFO 12005 --- [ XNIO-2 task-4] c.z.w.b.controller.open.AuthController : [jump]
authorizationCode:queryauthcode@@@emUDgagWI3FjZ4BAaYKQI-G0_FOkYOSs0zEhTw5GM1aH5pw21BFKCZ5i_UxdU_5-D5Nbw2MRxC3D75iSgPBb5Q,
回调URI:https://lantingjie.cn/wechat/auth/jump?shopId=5wtQr0lwDuPq8i2pYVN&parentShopId=shp_rZTmLWdQCvPU3xt1kPL&userId=3&shopName=%E6%B5%B7%E7%8F%A0%E5%BA%97&auth_code=queryauthcode@@@emUDgagWI3FjZ4BAaYKQI-G0_FOkYOSs0zEhTw5GM1aH5pw21BFKCZ5i_UxdU_5-D5Nbw2MRxC3D75iSgPBb5Q&expires_in=3600
2018-04-23 16:31:14.286 INFO 12005 --- [ XNIO-2 task-6] c.z.w.b.controller.open.AuthController : [jump]
authorizationCode:queryauthcode@@@emUDgagWI3FjZ4BAaYKQI-G0_FOkYOSs0zEhTw5GM1aH5pw21BFKCZ5i_UxdU_5-D5Nbw2MRxC3D75iSgPBb5Q,
根据文档,https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN
授权码是步骤4回调URI返回的:
步骤4:授权后回调URI,得到授权码(authorization_code)和过期时间
授权流程完成后,授权页会自动跳转进入回调URI,并在URL参数中返回授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600)
授权码是通过微信扫码,选择授权的小程序后,第三方平台回调时候返回的, 跟我的后台逻辑没有关系。
我三次操作微信扫码授权,三次选择了不同的小程序,第三方平台回调时返回的授权码都是一样的。也就是说第三方平台根本没有根据我选择不同的小程序,返回不同的授权码。下面是不同时间操作授权时候返回的授权码,都是同样的授权码。
2018-04-23 15:50:28.552 DEBUG 11914 --- [ XNIO-2 task-7] c.z.w.b.a.s.WechatAuthorizerService : authorizationCode: queryauthcode@@@u-uT_wlMPjx5wUeymuc4TGQaezzyBT2_bTOGKqAa2Ihj5jnIfHeCWr1tQiOOUFy5_DExuk1p0JolIKnR4Sp5sQ
2018-04-23 15:51:36.392 DEBUG 11914 --- [ XNIO-2 task-8] c.z.w.b.a.s.WechatAuthorizerService : authorizationCode: queryauthcode@@@u-uT_wlMPjx5wUeymuc4TGQaezzyBT2_bTOGKqAa2Ihj5jnIfHeCWr1tQiOOUFy5_DExuk1p0JolIKnR4Sp5sQ
2018-04-23 16:00:19.620 DEBUG 11914 --- [ XNIO-2 task-9] c.z.w.b.a.s.WechatAuthorizerService : authorizationCode: queryauthcode@@@u-uT_wlMPjx5wUeymuc4TGQaezzyBT2_bTOGKqAa2Ihj5jnIfHeCWr1tQiOOUFy5_DExuk1p0JolIKnR4Sp5sQ
同一个微信下的不同的小程序(比如说是A,B,C三个小程序)授权给开放平台,授权后回调URI,得到授权码,利用授权码拿到的appid都是第一个授权时选择的小程序A的appid。即使授权是选择的是小程序B或者小程序C,返回来的appid都是小程序A的appid