|
- import 'dart:io';
-
- import 'package:flutter/material.dart';
- import 'package:flutter_alibc/alibc_model.dart';
- import 'package:flutter_alibc/flutter_alibc.dart';
- import 'package:fluttertoast/fluttertoast.dart';
- import 'package:package_info/package_info.dart';
- import 'package:zhiying_comm/models/profile/profile_model.dart';
- import 'package:zhiying_comm/pages/auth_page/auth_success_page/auth_success_page.dart';
- import 'package:zhiying_comm/util/taobao/taobao_auth_alert.dart';
- import 'package:zhiying_comm/zhiying_comm.dart';
- import 'package:provider/provider.dart';
-
- class TaobaoAuth {
- // static ProfileModel _profile;
-
- static String name = "";
- static String alibcAppKey = "";
-
- static setParams({@required String name, @required String alibcAppKey}) {
- TaobaoAuth.name = name;
- TaobaoAuth.alibcAppKey = alibcAppKey;
- }
-
- // 淘宝授权
- static Future auth(BuildContext context) async {
- bool isAuth = await TaobaoAuth.isAuth();
- if (isAuth) {
- Fluttertoast.showToast(msg: '你已经授权过了');
- Provider.of<UserInfoNotifier>(context, listen: false).updateUserAuth(true);
- return null;
- }
-
- bool isConfirm = await showDialog(
- context: context,
- builder: (BuildContext context) {
- return TaobaoAuthAlert();
- });
- if (isConfirm != null && isConfirm == true) {
- Map<String, dynamic> data = Map<String, dynamic>.from(
- await NetUtil.post('/api/v1/taobao/auth', method: NetMethod.GET));
- Logger.debug(data);
- if (data['code'] != 1) {
- return null;
- }
- String url = data['data']['redirect_url'];
- print("授权链接" + url);
- TradeResult result;
- if (Platform.isAndroid) {
- // result = await FlutterAlibc.openByUrl(url: url, backUrl: "alisdk://", isAuth: true);
- print("name: $name" + "\n" + "alibcAppKey: $alibcAppKey");
- var resultMsg = await FlutterAlibc.taoKeLoginNew(name, alibcAppKey);
-
- if (!EmptyUtil.isEmpty(resultMsg["accessToken"])) {
- print("access 成功 $resultMsg");
- Map<String, dynamic> params = {};
- params['access_token'] = resultMsg["accessToken"]?.toString();
- await NetUtil.post('/api/v1/tbredirect',
- params: params, method: NetMethod.POST);
- } else {
- print("access 失败 $resultMsg");
- Fluttertoast.showToast(msg: "access 失败 $resultMsg");
- }
- // if(result.errorCode=="0"){
- // await Navigator.push(context,MaterialPageRoute(builder: (_)=>AuthSuccessPage(authResultType: AuthResultType.success,)) );
- // }else{
- // await Navigator.push(context,MaterialPageRoute(builder: (_)=>AuthSuccessPage(authResultType: AuthResultType.error,)) );
- // }
- } else if (Platform.isIOS) {
- result = await FlutterAlibc.openByUrl(url: url);
- }
- // Logger.log('${result.errorCode} ${result.errorMessage} ');
- // if(null != result && result.errorCode == '0'){
- // Provider.of<UserInfoNotifier>(context, listen: false).updateUserAuth(true);
- // }
- await initAuth(context);
- }
- }
-
- // 返回是否授权
- static Future<bool> isAuth() async {
- // if (_profile != null) {
- // return _profile.isAuth;
- // }
- try {
- Map<String, dynamic> data = Map<String, dynamic>.from(
- await NetUtil.post('/api/v1/user/profile', method: NetMethod.GET));
- if (data['code'] == 1) {
- ProfileModel _profile =
- ProfileModel.fromJson(Map<String, dynamic>.from(data['data']));
- return _profile.isAuth;
- }
- } catch (e, s) {
- Logger.error(e, s);
- }
- return false;
- }
-
- // 返回是否授权
- static void initAuth(BuildContext context) async {
- try {
- Map<String, dynamic> data = Map<String, dynamic>.from(
- await NetUtil.post('/api/v1/user/profile', method: NetMethod.GET));
- if (data['code'] == 1) {
- ProfileModel model =
- ProfileModel.fromJson(Map<String, dynamic>.from(data['data']));
- if (null != model && model.isAuth) {
- Provider.of<UserInfoNotifier>(context, listen: false).updateUserAuth(true);
- }
- }
- } catch (e, s) {
- Logger.error(e, s);
- }
- }
- }
|