oath2获取用户信息mysql_支付宝小程序--如何获取用户信息

需要在开放平台-开发者中心-我的应用-小程序-小程序详情-开发管理-功能列表中,添加功能【获取会员信息】。(不需要签约)状态为“已生效”,就可以拥有调用获取会员信息的权限。 接着编写获取会员信息的代码:

1.如果只是在客户端上做展示用,则使用my.getAuthCode、my.getAuthUserInfo函数即可拿到用户昵称与用户头像。 小程序示例:

my.getAuthCode({

scopes: ‘auth_user‘,

success: (res) => { //获取用户信息

my.getAuthUserInfo({

success: (res) => {

my.alert(res.nickName); //获取的用户昵称

my.alert(res.avatar); //获取的用户头像图片

}

});

},

});

2.如果需要把信息存储到数据库中,则需要: 第一步:调用JSAPI:my.getAuthCode,获取authcode; 代码示例:

//获取用户信息

my.getAuthCode({

scopes: ‘auth_user‘, //授权类型,默认auth_base(静默授权),支持auth_base/auth_user(主动授权)

success: (res) => {

my.alert(res.authCode); //获取的autoCode授权码

},

});

第二步:调用JSAPI:my.httpRequest,连接您自己的服务器;

代码示例:

my.getAuthCode({

scopes: ‘auth_user‘, // 主动授权:auth_user,静默授权:auth_base

success: (res) => {

if (res.authCode) { // 认证成功

// 调用自己的服务端接口,让服务端进行后端的授权认证,并且种session,需要解决跨域问题

my.httpRequest({

url: ‘http://isv.com/auth‘, // 该url是自己的服务地址,实现的功能是服务端拿到authcode去开放平台进行token验证

data: {

authcode: res.authcode

},

success: () => { // 授权成功并且服务器端登录成功 },

fail: () => { // 根据自己的业务场景来进行错误处理 },

});[/size]

[size=3] [/size][size=2] }

},

});

注意:使用my.httpRequest连接服务器需要解决跨域问题,需要在开放平台-开发者中心-我的应用-小程序-小程序详情-开发管理-设置中添加httpRequest域名白名单 第三步:在您的服务端,调用开放平台接口alipay.system.oauth.token,用authcode换取token; 以JAVA代码为例:

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");

AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();

request.setCode("2e4248c2f50b4653bf18ecee3466UC18");

request.setGrantType("authorization_code");

try {

AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);

System.out.println(oauthTokenResponse.getAccessToken());

} catch (AlipayApiException e) {

//处理异常

e.printStackTrace();

}

第四步:在您的服务端拿到token后,继续调用开放平台接口alipay.user.info.share,用token换取用户信息。 以JAVA代码为例:

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private _key","json","GBK","alipay_public_key","RSA2");

AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();

AlipayUserInfoShareResponse response = alipayClient.execute(request,accessToken);

if(response.isSuccess()){

System.out.println("调用成功");

} else {

System.out.println("调用失败");

}

第五步:把处理成功的状态反馈回JSAPI中,并在小程序中展示 具体请看【小程序文档用户授权】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值