更新时间:2022-02-17 06:11:39下载pdf
名词 | 说明 |
---|---|
商户 | 商户实体信息,主要关联一些商户信息,包括商户名,营业执照等 |
主账号 | SaaS体系主账号,等同于开发者账号 |
子账号 | SaaS体系子账号,会关联一个主账号 |
可以通过TuyaOSUser.getUserInstance()
获取对应ITuyaUser操作类。
账号分为主账号和子账号,均可使用该密码登录功能
密码登录,如果为预登录(当返回多个商户信息时),需要进行商户选择后,将选择的商户Code填入登录入参,重新进行密码登录
接口说明
账号密码登录
void loginWithPassword(TuyaUserLoginWithPwdReqBean request, ITuyaUserLoginCallback<User> callback)
参数说明
参数 | 是否必填 | 描述 |
---|---|---|
userName | 必填 | 账号 | 邮箱 |
password | 必填 | 密码 |
countryCode | 必填 | 国家区号 如"86" |
merchantCode | 非必填 | 商户Code |
代码范例
/**
* 账号密码登录
* @param view
*/
public void loginWithPwd(View view) {
String username = etUsername.getText().toString();
String merchantCode = etMerchant.getText().toString();
String password = etPwd.getText().toString();
TuyaUserLoginWithPwdReqBean reqBean = new TuyaUserLoginWithPwdReqBean();
reqBean.setPassword(password);
reqBean.setUsername(username);
reqBean.setCountryCode("86");
reqBean.setMerchantCode(merchantCode);
TuyaOSUser.getUserInstance().loginWithPassword(reqBean, new ITuyaUserLoginCallback<User>() {
@Override
public void onPreLogin(List<TuyaMerchantBean> merchantBeanList) {
StringBuilder sb = new StringBuilder();
for (TuyaMerchantBean item : merchantBeanList) {
sb.append(item.getMerchantCode())
.append(item.getMerchantName())
.append("\n");
}
toast("需要输入商户code");
L.d(TAG, "get merchantList");
L.d(TAG, sb.toString());
if(null != merchantBeanList && !merchantBeanList.isEmpty()){
String merchantCode = merchantBeanList.get(0).getMerchantCode();
etMerchant.setText(merchantCode);
toast("填充商户code");
}
}
@Override
public void onSuccess(User data) {
toast("login success");
}
@Override
public void onError(String errorCode, String errorMessage) {
L.e(TAG, errorMessage);
toast(errorMessage);
}
});
}
该功能分为两步,获取登录验证码,然后将验证码填入验证码登录入参,如果是预登录(有多商户)操作,则需要对应的商户Code传入重新获取验证码,将对应的验证码和商户Code传入进行登录
接口说明
获取登录验证码
void getValidateCode(TuyaUserSendCodeReqBean request, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
countryCode | 国家区号:如 “86” |
username | 手机号 | 邮箱 |
codeType | 获取验证码类型, 登录类型传0 |
接口说明
验证码登录
void loginWithVerifyCode(TuyaUserLoginWithCodeReqBean request, ITuyaUserLoginCallback<User> callback)
参数 | 描述 |
---|---|
userName | 账号, 手机号 | 邮箱 |
code | 验证码 |
countryCode | 国家区号, 如 “86” |
merchantCode | 商户code, 非必填 |
/**
* 账号验证码登录
* @param view
*/
public void loginWithCode(View view) {
String username = etUsername.getText().toString();
String merchantCode = etMerchant.getText().toString();
String code = etCode.getText().toString();
TuyaUserLoginWithCodeReqBean reqBean = new TuyaUserLoginWithCodeReqBean();
reqBean.setCode(code);
reqBean.setUsername(username);
reqBean.setCountryCode("86");
reqBean.setMerchantCode(merchantCode);
TuyaOSUser.getUserInstance().loginWithVerifyCode(reqBean, new ITuyaUserLoginCallback<User>() {
@Override
public void onPreLogin(List<TuyaMerchantBean> merchantBeanList) {
StringBuilder sb = new StringBuilder();
for (TuyaMerchantBean item : merchantBeanList) {
sb.append(item.getMerchantCode())
.append(item.getMerchantName())
.append("\n");
}
toast("需要输入商户code");
L.d(TAG, "get merchantList");
L.d(TAG, sb.toString());
if(null != merchantBeanList && !merchantBeanList.isEmpty()){
String merchantCode = merchantBeanList.get(0).getMerchantCode();
etMerchant.setText(merchantCode);
toast("填充商户code");
}
}
@Override
public void onSuccess(User data) {
toast("login success");
}
@Override
public void onError(String errorCode, String errorMessage) {
L.e(TAG, errorMessage);
toast(errorMessage);
}
});
}
授权流程
使用场景
接口说明
三方系统授权登录
void loginByTicket(String ticket, ITuyaUserResultCallback<User> listener);
参数说明
参数 | 说明 |
---|---|
ticket | 通过授权流程获取ticket |
示例代码
TuyaOSUser.getUserInstance().loginByTicket(content, new ITuyaUserResultCallback<User>(){
@Override
public void onSuccess(User user) {
Log.e(TAG,"登录成功")
}
@Override
public void onError(String code, String error) {
Log.e(TAG,"登录失败:" + error)
}
});
主账号通过登录直接注册功能,分为两个步骤,首先获取登录即注册的验证码,然后进行登录即注册功能
接口说明
获取验证码
void getValidateCode(TuyaUserSendCodeReqBean request, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
countryCode | 国家区号:如 “86” |
username | 手机号 | 邮箱 |
codeType | 获取验证码类型, 类型传3 |
接口说明
登录即注册
void loginOrRegister(TuyaUserLoginOrRegisterReqBean request, ITuyaUserResultCallback<User> callback);
参数说明
参数 | 描述 |
---|---|
username | 账号 手机号 | 邮箱 |
code | 验证码 |
countryCode | 国家区号 如"86" |
industryType | 行业类型 |
/**
* 获取验证码
* @param v
*/
public void getCode(View v){
String username = etUsername.getText().toString();
String merchantCode = etMerchant.getText().toString();
TuyaUserSendCodeReqBean reqBean = new TuyaUserSendCodeReqBean();
reqBean.setCountryCode("86");
reqBean.setUsername(username);
reqBean.setCodeType(codeType);
reqBean.setMerchantCode(merchantCode);
TuyaOSUser.getUserInstance().getValidateCode(reqBean, new IResultCallback() {
@Override
public void onError(String code, String error) {
L.e(TAG, error);
toast(error);
}
@Override
public void onSuccess() {
toast("getCode success");
}
});
}
/**
* 登录即注册
* */
public void loginOrRegister(View view) {
String username = etUsername.getText().toString();
String code = etCode.getText().toString();
String countryCode = "86";
String industryType = "security_az";
TuyaUserLoginOrRegisterReqBean reqBean = new TuyaUserLoginOrRegisterReqBean();
reqBean.setUsername(username);
reqBean.setCode(code);
reqBean.setCountryCode(countryCode);
reqBean.setIndustryType(industryType);
TuyaOSUser.getUserInstance().loginOrRegister(reqBean, new ITuyaUserResultCallback<User>() {
@Override
public void onSuccess(User data) {
toast("login or register success");
}
@Override
public void onError(String errorCode, String errorMessage) {
toast(errorMessage);
}
});
}
用户登录前修改密码,分为三个步骤,首先获取找回密码的验证码,将验证码传入查找商户列表,获取对应单独商户执行找回密码的方法
接口说明
获取验证码
void getValidateCode(TuyaUserSendCodeReqBean request, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
countryCode | 国家区号:如 “86” |
username | 手机号 | 邮箱 |
codeType | 获取验证码类型, 类型传2 |
接口说明
查找商户列表
void loginWithVerifyCode(TuyaUserLoginWithCodeReqBean request, ITuyaUserLoginCallback<User> callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 国家区号:如 “86” |
username | 手机号 | 邮箱 |
code | 验证码 |
接口说明
找回密码
void findPassword(TuyaUserFindPwdReqBean request, ITuyaUserFindPasswordCallback callback);
参数 | 描述 |
---|---|
username | 账号 手机号 | 邮箱 |
newPassword | 新密码 |
code | 验证码 |
countryCode | 国家区号 如"86" |
merchantCode | 商户code |
/**
* 1.0 获取验证码
* @param v
*/
public void getCode(View v){
String username = etUsername.getText().toString();
String merchantCode = etMerchant.getText().toString();
TuyaUserSendCodeReqBean reqBean = new TuyaUserSendCodeReqBean();
reqBean.setCountryCode("86");
reqBean.setUsername(username);
reqBean.setCodeType(codeType);
reqBean.setMerchantCode(merchantCode);
TuyaOSUser.getUserInstance().getValidateCode(reqBean, new IResultCallback() {
@Override
public void onError(String code, String error) {
L.e(TAG, error);
toast(error);
}
@Override
public void onSuccess() {
toast("getCode success");
}
});
}
/**
* 2.0 查询商户列表
* @param view
*/
public void queryMerchants(View view) {
String username = etUsername.getText().toString();
String code = etCode.getText().toString();
TuyaUserQueryMerchantWithCodeReqBean reqBean = new TuyaUserQueryMerchantWithCodeReqBean();
reqBean.setCode(code);
reqBean.setCountryCode("86");
reqBean.setUsername(username);
TuyaOSUser.getUserInstance().queryMerchantList(reqBean, new ITuyaUserResultCallback<List<TuyaMerchantBean>>() {
@Override
public void onSuccess(List<TuyaMerchantBean> data) {
if(null == data ){
toast("商户列表为空");
return;
}
int size = data.size();
if(0 <= size){
String merchantCode = data.get(0).getMerchantCode();
etMerchant.setText(merchantCode);
toast("queryMerchants success 填充第0个商户code");
}
}
@Override
public void onError(String errorCode, String errorMessage) {
toast(errorMessage);
}
});
}
/**
* 找回密码
* @param view
*/
public void resetPwd(View view) {
String username = etUsername.getText().toString();
String merchantCode = etMerchant.getText().toString();
String code = etCode.getText().toString();
String password = etPwd.getText().toString();
TuyaUserFindPwdReqBean reqBean = new TuyaUserFindPwdReqBean();
reqBean.setUsername(username);
reqBean.setNewPassword(password);
reqBean.setCode(code);
reqBean.setCountryCode("86");
reqBean.setMerchantCode(merchantCode);
TuyaOSUser.getUserInstance().findPassword(reqBean, new IResultCallback() {
@Override
public void onError(String code, String error) {
toast(error);
}
@Override
public void onSuccess() {
toast("findPassword success");
}
});
}
用户登录后修改密码,可以直接通过传递旧密码和新密码来修改密码
接口说明
修改密码
void modifyPassword(TuyaUserModifyPwdReqBean request, IResultCallback callback);
参数 | 描述 |
---|---|
oldPassword | 旧密码 |
newPassword | 新密码 |
代码范例
public void modifyPwd(View view) {
String oldPwd = etPwd.getText().toString();
String newPwd = etNewPwd.getText().toString();
TuyaUserModifyPwdReqBean reqBean = new TuyaUserModifyPwdReqBean();
reqBean.setOldPassword(oldPwd);
reqBean.setNewPassword(newPwd);
TuyaOSUser.getUserInstance().modifyPassword(reqBean, new IResultCallback() {
@Override
public void onError(String code, String error) {
toast(error);
L.e(TAG, error);
}
@Override
public void onSuccess() {
toast("modify success");
}
});
}
接口说明
账号登出
void logout(IResultCallback callback)
接口说明
账号注销
void cancelAccount(IResultCallback callback)
当用户信息发生了变更,如修改了用户头像、昵称等,需要调用同步用户信息接口,保持用户信息是最新的状态。如果多台设备同时登录,一台设备修改了用户信息。另外一台设备也需要同步用户信息,可以在查看用户信息时调用同步接口,同步最新的用户信息。
接口说明
用于同步用户信息
void updateUserInfo(IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
callback | 回调 |
示例代码
TuyaOSUser.getUserInstance().updateUserInfo(new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
User user = TuyaOSUser.getUserInstance().getUser();
}
});
接口说明
用于上传用户自定义的头像。
void uploadUserAvatar(File file, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
file | 用户头像图片文件 |
callback | 回调 |
示例代码
TuyaOSUser.getUserInstance().uploadUserAvatar(file,
new IResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(String code, String error) {
}
});
接口说明
修改昵称
void updateNickName(String name, final IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
name | 昵称 |
callback | 回调 |
示例代码
TuyaOSUser.getUserInstance().updateNickName(nickName,
new IResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(String code, String error) {
}
});
接口说明
用于更新用户时区。
void updateTimeZone(String timezoneId, IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
timezoneId | 时区 id |
callback | 回调 |
示例代码
TuyaOSUser.getUserInstance().updateTimeZone(
timezoneId,
new IResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(String code, String error) {
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈