支付宝生活号获取会员信息报token无效问题排查

支付宝生活号获取会员信息,详细文档见https://fuwu.alipay.com/platform/doc.htm#c0503

简单说一下开发步骤:

1.  登录支付宝开放平台(蚂蚁金服开放平台)。https://open.alipay.com/

2.  进入开发者中心,创建应用,并申请应用上线。

3.  签约——服务窗功能、获取会员信息功能。

4.  设置 授权回调路径 和 接口加签方式(选择RSA2(SHA256)密钥)

密钥 生成 需要下载支付宝提供的生成工具。

下载工具链接 : https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.iZGFov&treeId=291&articleId=105971&docType=1

选择2048,生成后绑定到支付宝开发中心。

5.  下载支付宝SDK,(把jar包打入maven仓库,括号里非必须)

https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

6.  下载服务窗Demo

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.5l3Mkk&treeId=54&articleId=104507&docType=1


我用的JAVA版本,其中DEMO里有这么一段坑爹的代码

支付宝生活号获取会员信息报token无效问题排查_第1张图片

使用DEMO测试,一直报token无效,找了很久终于找到问题所在,

标红的代码存在问题,修改后的代码如下:

AlipayUserInfoShareRequest userinfoShareRequest =newAlipayUserInfoShareRequest();

AlipayUserInfoShareResponse userinfoShareResponse = alipayClient.execute(

userinfoShareRequest,oauthTokenResponse.getAccessToken());

通过2处代码比较可以发现,是不是支付宝的程序猿晚上加班太晚,多写了个User


如果该问题还未解决,查看以下是否正确

1、如果只是网页获取用户OpenId,URL拼接规则,https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&auth_skip=false&scope=auth_base&redirect_uri=ENCODED_URL

如果是获取用户头像、昵称等详细信息,URL拼接规则https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=auth_user&redirect_uri=ENCODED_URL

不管是哪一种,重定向的URL需要encode

2、检查是否开启服务窗功能、 获取会员信息功能

3、检查签名方式,文档里写只支持RSA加密方式,其实RSA,RSA2都是支持的。


题外话:记一个生活号的问题, 生活号内部可能出现打不开http协议的网页,是因为支付宝生活号对 移动运营商广告拦截的原因, 配置成https协议就可以避免这个问题

你可能感兴趣的:(支付宝生活号获取会员信息报token无效问题排查)