# 获取用户信息
一般JS-SDK中的接口,只要业务页面是在U聊中打开,即可调用。但用户信息属于敏感内容,需要对接业务有申请U聊公众号,和搭建自己的业务后台。
# 准备工作
- 申请U聊公众号
- 对接U聊后台的业务系统
申请到U聊公众号后,可前往 U聊公众号管理平台 (opens new window) ,查看公众号对应的appSecret等开发字段。

- 公众号配置业务页面
为保证安全性,业务页面调用接口获取U聊用户信息时,U聊会判断页面是否通过业务对应的公众号打开。若不是,则无法获取用户信息。
# JS接口
UPCHAT.M.NAPI.getSecurity(success, fail)
在成功回调中,拿到security值,再提交给业务后台。业务后台将security和公众号的appSecret一并发送至U聊后台,验证通过后,得到用户信息。 具体见 后端认证接口 checkSecurity
# 业务页面获取用户信息
/**
* getUserInfo 根据校验码获取用户信息
* 声明:以下示例代码仅供联调使用,上生产时请根据不同的异常情况自行处理
*/
var getUserInfo = function() {
var url = '/upchat-public-demo/api/page/checkSecurity';
//成功后回调函数 代表流程是正常的,但是还需要判断result.status
//这里成功后调用了后台checkcode的servlet校验安全码
var _success = function (result) {
// 验证校验码
// AJAX验证校验码,此处接口和参数自行设计和约定
UPCHAT.M.NAPI.dismiss();
alert('验证校验码' + result.security);
/**
* status 为0 代表服务器返回的值是正确的
* 其他情况 可以提示为服务器内部错误
*/
if (result.status == '0') {
var data = {
code: result.security
};
/**
*
* 拿到验证码后,分为以下几步:
* 1、去对接系统后台checkSecurity,
* 2、对接系统的后台会去U聊后台checkSecurity,
* 根据返回的值判断是否拿到用户信息,U聊后台返回码:
* "0", "成功"
* "99", "非法请求" 代表用户没权限,或者公众号配置有问题
* "100", "登录已失效,请重新登录"
* 对接系统自行处理,为0代表拿到用户信息,其他代表未拿到,例如用户没有权限,后台就会返回99
* 3、前端根据对接系统的返回值,展示给用户
* 例如:"0" 代表成功 "99"代表用户无权限
*/
$.post(url, data, function (ret) {
if (ret.status == '0') {
alert('用户信息:' + JSON.stringify(ret.content));
} else if (ret.status == '99') {
alert('用户无权限')
} else {
alert('服务器内部错误');
}
});
} else {
alert(JSON.stringify(result));
alert('服务器内部错误');
}
};
//失败后回调函数 代表客户端失败,或者服务器给客户端返回500之类的错误
var _fail = function (fal) {
UPCHAT.M.NAPI.dismiss();
/**
* ios:
* fal '版本不支持', 则提示用户去下载最新版U聊
* android
* fal 'Class not found'或者'Invalid action' ,则提示用户去下载最新版U聊
* toNewApp()
* 其他情况,提示用户错误信息
*/
if (fal == '版本不支持' || fal == 'Class not found' || fal == 'Invalid action') {
alert('需更新U聊客户端');
} else {
alert(fal);
}
};
UPCHAT.M.NAPI.showLoadingView();
UPCHAT.M.NAPI.getSecurity(_success, _fail);
}