码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-27 18:34:54      阅读:1206      评论:0      收藏:0      [点我收藏+]

标签:success   业务   代码   代码示例   inf   bsp   自己   中心   会员   

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

 

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中,并在小程序中展示 具体请看【小程序文档用户授权

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

标签:success   业务   代码   代码示例   inf   bsp   自己   中心   会员   

原文地址:http://www.cnblogs.com/noel/p/7744680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!