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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支付宝小程序--如何获取用户信息相关的知识,希望对你有一定的参考价值。

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

 

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




以上是关于支付宝小程序--如何获取用户信息的主要内容,如果未能解决你的问题,请参考以下文章

支付宝小程序获取用户手机号

支付宝小程序授权登录踩坑

吐槽支付宝小程序支付-php

支付宝小程序是啥

支付宝小程序配置二级域名不行

支付宝小程序正式上线公测 附开发者工具和开发文档