123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- import { gameMethod } from "../../common/gameMethod";
- import { KindItem, OrderList, SevBack } from "../../common/Xys";
- import Config from "../../Config";
- import { PayProductParam, ConstItem, PlatFormDevType, DayTipsKey } from "../const/TypeConst";
- import GameDataCenter from "../GameDataCenter";
- import UIHelp, { DialogJintiaoTipsParams, DialogParams } from "../../logic/ui/UIHelp";
- import { I18n } from "../../utils/I18nUtil";
- import FguiMgr from "../../frameWork/fgui/FguiMgr";
- import { DialogViewView } from "../../logic/fgui/Common/DialogView/DialogViewView";
- import IDataModel from "../../frameWork/model/IDataModel";
- const { ccclass, property } = cc._decorator;
- export default class OrderModel extends IDataModel {
- constructor() {
- super('order');
- }
- doEvent(result: SevBack): void {
- }
- //免费,钻石,代金券,支付,广告统一调用接口
- // dcData.need 空数组 免费, 1货币&普通道具, 10充值(包含代金券支付), 11广告
- commonSendCharge(kid: string, orderList: OrderList, dcData: { title: string, need: KindItem }, sendUrl: string, sendParam: any, cb?: (isSucc: boolean, sevBack?: SevBack) => void, count: number = 1) {
- //请求对应的下单接口
- if (dcData?.need?.[0] == 10 && dcData?.need?.[1] > 0 && kid != "actShopJinTiao" && GameDataCenter.item.getItemCount(ConstItem.voucher) >= dcData?.need?.[1]) {
- if (GameDataCenter.dialog.checkSetToday(DayTipsKey.chargeByDaiJinQuan)) {
- //勾选了今日不再提醒,直接使用代金券
- sendParam["daibi"] = 1;
- this.SendCharge(kid, orderList, dcData, sendUrl, sendParam, cb, count);
- } else {
- //代金券足够并且不是直接购买代金券的商品,弹出二次确认框是否使用代金券
- let costItemInfo = GameDataCenter.item.getItemCfgBase(ConstItem.voucher);
- let costItem: KindItem = [];
- costItem[0] = ConstItem.voucher?.[0] ?? 1;
- costItem[1] = ConstItem.voucher?.[1];
- costItem[2] = orderList.daibi * count;
- let data: DialogParams = {
- content: I18n.getI18nText('dialogJintiaoTipsView_txtContent', costItemInfo.name),
- txtCancel: this.isCanCharge(kid) ? I18n.getI18nText('dialogJintiaoTipsView_txt_zf') : I18n.getI18nText('buyDjq', costItemInfo.name),
- costItem: costItem,
- showToggle: true,
- dayTipsKey: DayTipsKey.chargeByDaiJinQuan,
- maskCloseOnly: true,
- cbConfirm: () => {
- sendParam["daibi"] = 1;
- this.SendCharge(kid, orderList, dcData, sendUrl, sendParam, cb, count);
- },
- cbCancel: () => {
- if (this.isCanCharge(kid)) {
- sendParam["daibi"] = 0;
- this.SendCharge(kid, orderList, dcData, sendUrl, sendParam, cb, count);
- }
- else{
- GameDataCenter.page.openShopVoucher();
- }
- }
- }
- FguiMgr.Instance.openUI(DialogViewView, ViewZorder.POP, null, data);
- }
- } else {
- this.SendCharge(kid, orderList, dcData, sendUrl, sendParam, cb, count);
- }
- }
- //发送支付
- SendCharge(kid: string, orderList: OrderList, dcData: { title: string, need: KindItem }, sendUrl: string, sendParam: any, cb?: (isSucc: boolean, sevBack?: SevBack) => void, count: number = 1) {
- this.send(sendUrl, sendParam, (result: SevBack) => {
- if (result.type == 1) {
- if (!gameMethod.isEmpty(result.order10Id)) {
- if (!this.canPay) {
- console.log("后台配置关闭支付了")
- return
- }
- if (gameMethod.isEmpty(dcData?.title)) {
- //如果没有传商品标题,给个默认值防止充值失败,服务端必须要传!!!!!
- dcData.title = "默认礼包"
- }
- console.log(`支付kid:${kid},orderList:${JSON.stringify(orderList)},dcData:${JSON.stringify(dcData)}`)
- //特殊平台不能支付,需要走代金券
- if (this.isCanCharge(kid)) {
- //有下单的id,拉取平台支付
- let data: PayProductParam = {
- price: orderList.rmb * count,
- productId: orderList.iid,
- productName: dcData.title,
- productDesc: orderList.desc
- }
- this.showPlatPay(result.order10Id, result.order10cs, data)
- } else {
- //消耗代金券,弹窗提示
- console.log("不能直接购买,需要购买代金券")
- let itemCfg = GameDataCenter.item.getItemCfgBase(ConstItem.voucher);
- let data: DialogParams = {
- content: I18n.getI18nText("buyDjqTips", itemCfg.name, itemCfg.name),
- title: I18n.getI18nText("common_dialogtitle_1"),
- cbConfirm: () => {
- GameDataCenter.page.openShopVoucher();
- }
- }
- FguiMgr.Instance.openUI(DialogViewView, ViewZorder.POP, null, data);
- }
- } else if (!gameMethod.isEmpty(result.order11Id)) {
- //广告
- GameDataCenter.adVideo.sendSeeVideo(kid, result.order11Id, result.order11cs, cb)
- } else {
- //货币&普通道具
- if (cb) {
- cb(true, result);
- }
- }
- }
- })
- }
- isCanCharge(kid: string): boolean {
- if (!gameMethod.isEmpty(GameDataCenter?.sevBack?.switch?.djqPay) && kid != "actShopJinTiao") {
- //17wan、微信小游戏的安卓不能直接支付
- return false;
- }
- return true
- }
- showPlatPay(order10Id: string, order10cs: string, data: PayProductParam) {
- console.log("掉起支付接口")
- GameDataCenter.plat.instance.pay(order10Id, order10cs, data)
- }
- // 是否可以支付 (正常支付或下单直接领奖)
- get canPay(): boolean {
- // 无配置,走正常支付
- if (gameMethod.isEmpty(GameDataCenter.sevBack?.switch?.openPays?.[Config.pid])) {
- return true
- }
- return GameDataCenter.sevBack?.switch?.openPays[Config.pid] == 2
- }
- //ios是否开启支付
- get isOpenPay(): boolean {
- if (GameDataCenter.plat.instance.deviceOS == PlatFormDevType.ios || GameDataCenter.plat.instance.deviceOS == PlatFormDevType.mac) {
- //审核包关闭ios支付及所有入口
- if (gameMethod.isEmpty(GameDataCenter?.sevBack?.switch?.iosPay)) {
- return false
- }
- }
- return true
- }
- }
|