"use strict"; cc._RF.push(module, '4fd8fqtgaRIlL4VrfWYQ/1u', 'Coresdk'); // Scripts/erolabs/Coresdk.ts "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Coresdk = void 0; var Result_1 = require("./Result"); var APIUtil_1 = require("./APIUtil"); var ConfigLoader_1 = require("./ConfigLoader"); var DeepLink_1 = require("./DeepLink"); var Util_1 = require("./Util"); var Coresdk = /** @class */ (function () { function Coresdk() { } Coresdk.getInstance = function () { if (!Coresdk.instance) { Coresdk.instance = new Coresdk(); Coresdk.instance.apiUtil = new APIUtil_1.APIUtil(); Coresdk.instance.configLoader = new ConfigLoader_1.ConfigLoader(); // 試著取出token var token = cc.sys.localStorage.getItem(Coresdk.prefKeyToken); if (!token) token = ""; Coresdk.instance.token = token; } return Coresdk.instance; }; Coresdk.prototype.setLanguage = function (language) { Coresdk.getInstance().setLanguage(language); }; Coresdk.prototype.initialize = function (gameId, platform, language, callback) { var _this = this; Coresdk.getInstance().gameId = gameId; Coresdk.getInstance().platform = platform; Coresdk.getInstance().language = language; // 先取得 applicationIdentifier DeepLink_1.DeepLink.getPackageName(function (applicationIdentifier) { Coresdk.getInstance().applicationIdentifier = applicationIdentifier; // 更新設定檔及確認domain 網址 Coresdk.getInstance().configLoader.initialize(function (isSuccess, result) { if (isSuccess) { _this.isCoresdkInitialized = true; Coresdk.getInstance().config = result; // 輸出組態檔相關資訊 // console.log("ApiDomain:", JSON.stringify(result) ); } if (callback) callback(isSuccess); }); }); }; Coresdk.prototype.openLogin = function (callback) { var _this = this; var token = Coresdk.getInstance().getToken(); // console.log( "autoLogin3333" ); if (token.length > 0) { Coresdk.requestProfile(Coresdk.getInstance().config ? Coresdk.getInstance().config.ApiDomain : "https://sadpki-portal.ebuajk.com/api", token, function (_) { return callback(_); }); return; } // 組合成指定網址 var endpoint = "/login/"; var applicationIdentifier = Coresdk.getInstance().applicationIdentifier; var callbackUrl = Util_1.get_deeplink_url(applicationIdentifier, ""); var game_id = Coresdk.getInstance().gameId; var platform = Coresdk.getInstance().platform; var language = Coresdk.getInstance().language; var head = Coresdk.getInstance().config ? Coresdk.getInstance().config.Domain : "https://sadpki-portal.ebuajk.com"; console.log("headddd" + head); var url = head + endpoint + "?" + "login=true" + "&callback=" + callbackUrl + "&game_id=" + game_id + "&platform=" + platform + "&lang=" + language; console.log("autoLoginAdress" + url); DeepLink_1.DeepLink.openURL(url, function (deeplinkurl) { // 取得回傳網址中的token console.log("deeplinkurl" + deeplinkurl); var token = Util_1.url_find_key(deeplinkurl, "token"); _this.setToken(token); // 向 web api 要求 profile 資訊 Coresdk.requestProfile(Coresdk.getInstance().config ? Coresdk.getInstance().config.ApiDomain : "https://sadpki-portal.ebuajk.com/api", token, function (_) { return callback(_); }); }); }; Coresdk.prototype.openLogout = function (callback) { var _this = this; // 組合成指定網址 var endpoint = "/login/"; var applicationIdentifier = Coresdk.getInstance().applicationIdentifier; var language = Coresdk.getInstance().language; var callbackUrl = Util_1.get_deeplink_url(applicationIdentifier, ""); var url = Coresdk.getInstance().config.Domain + endpoint + "?" + "logout=true" + "&callback=" + callbackUrl + "&lang=" + language; DeepLink_1.DeepLink.openURL(url, function (_) { _this.setToken(""); var result = new Result_1.LogoutResult(); result.exception = ""; callback(result); }); }; Coresdk.prototype.openPayment = function () { // 組合成指定網址 var endpoint = "/payment/"; var token = Coresdk.getInstance().getToken(); var domain = Coresdk.getInstance().config.PaymentDomain; var language = Coresdk.getInstance().language; var url = domain + endpoint + "?jwt=" + token + "&lang=" + language; // open with browser Util_1.open_url(url); }; Coresdk.prototype.getUserCoins = function () { // 組合成指定網址 var endpoint = "/getUserCoins"; // var url = ; var query = new Result_1.Dictionary(); query["merchantId"] = ""; query["serviceId"] = ""; var token = Coresdk.getInstance().getToken(); var domain = Coresdk.getInstance().config ? Coresdk.getInstance().config.ApiDomain : "https://sadpki-portal.ebuajk.com/api"; var url = domain + endpoint; Coresdk.getInstance().apiUtil.requestAPI(url, query, token, "", function (res) { // this.coins = url_find_key( res.Data, "coins"); var data = JSON.parse(res.Data); Coresdk.getInstance().coins = data.coins; // console.log( this.coins + "获取ecoin返回数据-----" + JSON.stringify( data ) ); }); // open with browser // Coresdk.getInstance().apiUtil.requestAPI(url, deeplinkurl => { // this.coins = url_find_key( deeplinkurl, "coins"); // console.log( JSON.stringify( deeplinkurl ) + "地址顶顶顶顶" + this.coins ); // }); }; Coresdk.prototype.openAccountBindGame = function (game_account, callback) { var _this = this; // 組合成指定網址 var endpoint = "/bind/"; var applicationIdentifier = Coresdk.getInstance().applicationIdentifier; var callbackUrl = Util_1.get_deeplink_url(applicationIdentifier, ""); var game_id = Coresdk.getInstance().gameId; var platform = Coresdk.getInstance().platform; var language = Coresdk.getInstance().language; var url = Coresdk.getInstance().config.Domain + endpoint + "?" + "game_id=" + game_id + "&game_account=" + game_account + "&callback=" + callbackUrl + "&platform=" + platform + "&lang=" + language; console.log("绑定游客账号返回相关bindgame" + url); DeepLink_1.DeepLink.openURL(url, function (deeplinkurl) { var token = Util_1.url_find_key(deeplinkurl, "token"); console.log(deeplinkurl + "绑定游客账号返回相关bindgamesssss" + url); var bind = Util_1.url_find_key(deeplinkurl, "bind"); if (bind == "success") { _this.setToken(token); // 向 web api 要求 profile 資訊 Coresdk.requestProfile(Coresdk.getInstance().config.ApiDomain, token, function (_) { return callback(_); }); return; } var errorRet = new Result_1.ProfileResult(); errorRet.isSuccess = false; errorRet.exception = "bind_failed"; callback(errorRet); }); }; Coresdk.prototype.postAccountBindGame = function (game_account, callback) { // 組合成指定網址 var endpoint = "/accountBindGame"; var game_id = Coresdk.getInstance().gameId; Coresdk.postAccountBindGame(Coresdk.getInstance().config.ApiDomain, Coresdk.getInstance().getToken(), game_id, game_account, function (result) { if (result.isSuccess) { Coresdk.requestProfile(Coresdk.getInstance().config.ApiDomain, Coresdk.getInstance().getToken(), callback); return; } var profileResult = new Result_1.ProfileResult(); profileResult.isSuccess = false; profileResult.exception = result.reason; if (callback) callback(profileResult); }); }; Coresdk.prototype.getToken = function () { return this.token; }; Coresdk.prototype.getCoins = function () { return Coresdk.getInstance().coins; }; Coresdk.prototype.getLoginURL = function () { if (!this.isCoresdkInitialized) { console.log("Please initialize() first."); return ""; } return Coresdk.getInstance().config.Domain + "/login/"; }; Coresdk.prototype.setToken = function (value) { Coresdk.getInstance().token = value; cc.sys.localStorage.setItem(Coresdk.prefKeyToken, value); }; Coresdk.requestProfile = function (domain, token, callback) { var endpoint = "/getUserInfo"; var url = domain + endpoint; var query = new Result_1.Dictionary(); query["merchantId"] = ""; query["serviceId"] = ""; Coresdk.getInstance().apiUtil.requestAPI(url, query, token, "", function (res) { var result = Coresdk.parseProfileResult(res); if (callback) { callback(result); } }); }; Coresdk.postAccountBindGame = function (domain, token, game_id, game_account, callback) { var endpoint = "/accountBindGame"; var url = domain + endpoint; var platform = Coresdk.getInstance().platform; var query = new Result_1.Dictionary(); var body = "game_id=" + game_id + "&game_account=" + game_account + "&platform=" + platform; Coresdk.getInstance().apiUtil.requestAPI(url, query, token, body, function (res) { var result = new Result_1.AccountBindGameResult(); if (res.Exception != null && res.Exception.length > 0) { result.isSuccess = false; result.result = "-1"; result.reason = res.Exception; } else { var d = JSON.parse(res.Data); result.result = d["result"]; result.reason = d["reason"]; result.isSuccess = result.result == "0000"; } if (callback) callback(result); }); }; Coresdk.parseProfileResult = function (res) { var result = new Result_1.ProfileResult(); result.exception = res.Exception; result.isSuccess = res.Exception ? false : true; if (result.isSuccess) { var d = JSON.parse(res.Data); result.data = new Result_1.ProfileData(); result.data.result = d.result; result.data.server_time = d.server_time; result.data.user_info = new Result_1.UserInfo(); if (d.user_info) { result.data.user_info.account = d.user_info.account; result.data.user_info.account_status = d.user_info.account_status; result.data.user_info.birthday = d.user_info.birthday; result.data.user_info.coins = d.user_info.coins; result.data.user_info.country = d.user_info.country; result.data.user_info.free_coins = d.user_info.free_coins; result.data.user_info.gender = d.user_info.gender; result.data.user_info.hobbies = d.user_info.hobbies; result.data.user_info.nickname = d.user_info.nickname; result.data.user_info.user_id = d.user_info.user_id; } } return result; }; Coresdk.prefKeyToken = "coresdk.token"; return Coresdk; }()); exports.Coresdk = Coresdk; cc._RF.pop();