mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-09 10:18:50 +01:00
79 lines
3.4 KiB
TypeScript
79 lines
3.4 KiB
TypeScript
import {showMessage} from "../dialog/message";
|
||
import {fetchPost} from "./fetch";
|
||
import {genUUID} from "./genID";
|
||
|
||
export const processIOSPurchaseResponse = (code: number) => {
|
||
if (code === 0) {
|
||
/// #if MOBILE
|
||
document.querySelector("#modelMain").dispatchEvent(new CustomEvent("click", {
|
||
detail: document.querySelector("#modelMain #refresh")
|
||
}));
|
||
/// #else
|
||
document.querySelector('.config__tab-container[data-name="account"] #refresh').dispatchEvent(new Event("click"));
|
||
/// #endif
|
||
} else {
|
||
// -1:Invalid cloud region 云端区域无效
|
||
// -2:Server communication failed, need to retry 服务器通讯失败,需要重试
|
||
// -3:Non-iOS device 非 iOS 设备
|
||
// -4:Account not logged in 账号未登录
|
||
// -5:Account status abnormal 账号状态异常
|
||
// -6:Parameter error 参数错误
|
||
// -7:AccountToken verification failed 校验 accountToken 失败
|
||
// -8:Transaction verification failed 校验 transaction 失败
|
||
let message = "";
|
||
switch (code) {
|
||
case -1:
|
||
message = "Invalid cloud region.";
|
||
break;
|
||
case -2:
|
||
message = "Server communication failed, need to retry.";
|
||
break;
|
||
case -3:
|
||
message = "Non-iOS device.";
|
||
break;
|
||
case -4:
|
||
message = "Account not logged in.";
|
||
break;
|
||
case -5:
|
||
message = "Account status abnormal.";
|
||
break;
|
||
case -6:
|
||
message = "Parameter error.";
|
||
break;
|
||
case -7:
|
||
message = "AccountToken verification failed.";
|
||
break;
|
||
case -8:
|
||
message = "Transaction verification failed.";
|
||
break;
|
||
}
|
||
showMessage(message, 0, "error");
|
||
}
|
||
};
|
||
|
||
export const iOSPurchase = (productType: string) => {
|
||
if (window.siyuan.user) {
|
||
fetchPost("/api/setting/getCloudUser", {
|
||
token: window.siyuan.user.userToken,
|
||
}, response => {
|
||
if (window.siyuan.user.userSiYuanOneTimePayStatus !== response.data.userSiYuanOneTimePayStatus ||
|
||
window.siyuan.user.userSiYuanProExpireTime !== response.data.userSiYuanProExpireTime ||
|
||
window.siyuan.user.userSiYuanSubscriptionPlan !== response.data.userSiYuanSubscriptionPlan ||
|
||
window.siyuan.user.userSiYuanSubscriptionType !== response.data.userSiYuanSubscriptionType ||
|
||
window.siyuan.user.userSiYuanSubscriptionStatus !== response.data.userSiYuanSubscriptionStatus) {
|
||
showMessage(window.siyuan.languages["_kernel"][19]);
|
||
return;
|
||
}
|
||
window.siyuan.user = response.data;
|
||
let productID;
|
||
if (window.siyuan.config.cloudRegion === 0) {
|
||
productID = productType === "function" ? "china00" : "china02";
|
||
} else {
|
||
productID = productType === "function" ? "00" : "02";
|
||
}
|
||
window.webkit.messageHandlers.purchase.postMessage(`${productID} ${genUUID().substring(0, 19)}${window.siyuan.config.cloudRegion}00${window.siyuan.user.userId.substring(0, 1)}-${window.siyuan.user.userId.substring(1)}`);
|
||
});
|
||
} else {
|
||
showMessage(window.siyuan.languages.needLogin);
|
||
}
|
||
}
|