registerWechatMobile method

Future<UserJsonResult> registerWechatMobile(
  1. String? mobile,
  2. String? nickname,
  3. String? avatar,
  4. String? unionid,
  5. String? openid,
)

Implementation

Future<UserJsonResult> registerWechatMobile(String? mobile, String? nickname,
    String? avatar, String? unionid, String? openid) async {
  //
  Map<String, String> headers = {
    HttpHeaders.contentTypeHeader: "application/json"
  };
  //
  var body = json.encode({
    "mobile": mobile,
    "nickname": nickname,
    "avatar": avatar,
    "unionid": unionid,
    "openid": openid,
    "admin": false,
    "client": client
  });
  //
  final initUrl =
      BytedeskUtils.getHostUri('/visitor/api/register/wechat/mobile');
  final initResponse =
      await httpClient.post(initUrl, headers: headers, body: body);
  //解决json解析中的乱码问题
  Utf8Decoder utf8decoder = const Utf8Decoder(); // fix 中文乱码
  //将string类型数据 转换为json类型的数据
  final responseJson =
      json.decode(utf8decoder.convert(initResponse.bodyBytes));
  // debugPrint("responseJson $responseJson");
  //
  UserJsonResult userJsonResult = UserJsonResult.fromJson(responseJson);
  if (userJsonResult.statusCode == 200) {
    SpUtil.putString(BytedeskConstants.mobile, mobile!);
    SpUtil.putString(BytedeskConstants.nickname, nickname!);
    SpUtil.putString(BytedeskConstants.avatar, avatar!);
    SpUtil.putString(BytedeskConstants.unionid, unionid!);
    SpUtil.putString(BytedeskConstants.openid, openid!);
  }
  // 新账号,mqtt需要重连
  return userJsonResult;
}