提交 e597e520 作者: 王进

游客支付弹窗

上级 2abf9f74
......@@ -42,7 +42,7 @@ class TTSDK {
}
public async Login() {
const _selt = this;
const loginPromise = await _selt._login().catch(err => {
const loginPromise = await _selt._login(false).catch(err => {
console.log("$$SDK登录异常::Login", err);
});
_selt.sdkParams.source = 'TOUTIAO';
......@@ -55,10 +55,10 @@ class TTSDK {
_selt.Login();
});
if (sdkLoginData.code == 0) {
_selt.ReportParams.openId = _selt.sdkParams.open_id = sdkLoginData.data.openid || '';
_selt.sdkParams.anonymous_openid = sdkLoginData.data.anonymous_openid || ''; // 如果是游客登录服务端会返回openid
_selt.sdkParams.open_id = sdkLoginData.data.openid || '';
_selt.ReportParams.openId = _selt.sdkParams.anonymous_openid = sdkLoginData.data.anonymous_openid || ''; // 游客openid
_selt.sdkParams.session_key = sdkLoginData.data.session_key || '';
_selt.sdkParams.uniqueid = _selt.sdkParams.open_id != '' ? _selt.sdkParams.open_id : sdkLoginData.data.anonymous_openid;
_selt.sdkParams.uniqueid = sdkLoginData.data.anonymous_openid;
}
return _selt.sdkActive();
}
......@@ -76,7 +76,7 @@ class TTSDK {
private async sdkLogin() {
const _selt = this
// 获取用户信息
_selt.sdkParams.token = '' // 强制清空登录toekn
_selt.sdkParams.token = '' // 强制清空登录token
let sdkLoginData = await _selt.sdkRequest(ttLinks.login, _selt.sdkParams).catch(err => {
console.log("$$SDK登陆异常:", err);
_selt.sdkAlert("$$SDK登陆异常:" + err);
......@@ -91,15 +91,35 @@ class TTSDK {
});
// _selt.createGameRecorder();
return LoginCallBack;
} else {
_selt.sdkAlert(sdkLoginData.msg);
}
}
public async payOrderStatus(Params) {
let payResult = await this.payOrder(Params, false);
return payResult;
}
private async checkUserLogin() {
return new Promise((resolve, reject) => {
(tt as any).checkSession({
success(res) {
resolve(0)
},
fail(res) {
resolve(-1);
}
});
});
}
// SDK支付接口
public async payOrder(Params, showSDKAlert = true) {
const _selt = this;
// 支付前先判断用户是否登录
let isLogin = await _selt.checkUserLogin();
if(isLogin == -1) {
isLogin = await _selt.reLogin();
if(isLogin == -1) return false;
}
_selt.LoadingOn();
// 支付前先获取用户订单状态,如果没有未完成订单则继续支付
let res = await _selt.sdkRequest(ttLinks.order, _selt.deepCopy({}, _selt.sdkParams, Params)).catch(err => {
......@@ -147,7 +167,7 @@ class TTSDK {
msg = ' 财经方失败';
break;
case -16000:
msg = ' 用户未登录';
msg = '用户未登录';
break;
case 2:
msg = '重复发起支付请求';
......@@ -162,7 +182,7 @@ class TTSDK {
msg = '其他错误';
break;
}
if (showSDKAlert) _selt.sdkAlert(msg);
if (showSDKAlert && msg != '') _selt.sdkAlert(msg);
resolve(err.errCode);
}
}));
......@@ -373,7 +393,32 @@ class TTSDK {
}
})
}
private _login(): Promise<any> {
private async reLogin() {
const _selt = this;
const loginPromise = await _selt._login(true).catch(err => {
console.log("$$SDK登录异常::Login", err);
});
if(loginPromise == -1) return false; // 用户取消登录
let loginPostData = _selt.deepCopy({}, _selt.sdkParams, { // 拼上appid和code
anonymous_code: loginPromise.anonymousCode || '',
appid: tt_SDKConfig.appid,
code: loginPromise.code || ''
});
let sdkLoginData = await _selt.sdkRequest(ttLinks.init, loginPostData).catch(err => {
_selt.reLogin();
});
if (sdkLoginData.code == 0) {
_selt.sdkParams.open_id = sdkLoginData.data.openid || '';
_selt.ReportParams.openId = _selt.sdkParams.anonymous_openid = sdkLoginData.data.anonymous_openid || ''; // 游客openid
_selt.sdkParams.session_key = sdkLoginData.data.session_key || '';
_selt.sdkParams.uniqueid = sdkLoginData.data.anonymous_openid;
_selt.sdkParams.type = 'bind'
}
const res = await _selt.sdkLogin();
if(res) return 0;
else return -1;
}
private _login(showLoginView: boolean): Promise<any> {
return new Promise((resolve, reject) => {
try {
(tt as any).login({
......@@ -381,9 +426,9 @@ class TTSDK {
resolve(res);
},
fail: (res) => {
resolve(res);
resolve(-1);
},
force: false // 不强制调起登录框
force: showLoginView // 不强制调起登录框
});
} catch (err) { }
});
......@@ -465,12 +510,12 @@ class TTSDK {
this.GameRecorder = (tt as any).getGameRecorderManager();
this.GameRecorder.onStart(res => {
console.log("$$开始录屏::麦克风状态", res);
if(startEventCallBack) startEventCallBack();
if (startEventCallBack) startEventCallBack();
});
this.GameRecorder.onStop(res => {
console.log("$$结束录屏::视频路径", res);
if (res) _self.videoPath = res.videoPath;
if(stopEventCallBack) stopEventCallBack();
if (stopEventCallBack) stopEventCallBack();
})
} catch (err) {
console.log("$$SDK录屏异常::gameRecorder", err);
......@@ -731,7 +776,8 @@ class TTSDK {
unionid: '', // 用户Unionid,用于切支付
pay_channel: '', // 支付方式,初始化接口返回
client_type: 'toutiao_minigame', // 客户端类型
session_key: '' // 用户session_key
session_key: '', // 用户session_key
type: '' // 登录类型
}
}
// SDK后端接口(勿改)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论