支付宝生活号获取会员信息,详细文档见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里有这么一段坑爹的代码
使用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协议就可以避免这个问题