import Utils from "../../Script/module/Pay/Utils"; import List from "../../Script/module/RankList/List"; import NumberToImage from "../../Script/NumberToImage"; import { MiniGameSdk } from "../../Script/Sdk/MiniGameSdk"; const { ccclass, property } = cc._decorator; @ccclass export default class NewClass extends cc.Component { //商店界面 @property(cc.Node) shop: cc.Node = null; //商品列表 @property(cc.Node) itemList: cc.Node = null; // onLoad () {} //金币数量 @property(cc.Node) coin: cc.Node = null; btn_Touch: boolean = true; onLoad() { this.btn_Touch = true; } start() { this.btn_Touch = true; this.openShop(); } //打开商店界面 openShop() { // 商品数据数组 const products = [ { product_id: "gold_1", name: "金币包1", price: 600, coin:1200, title: "3x2六档金币" }, { product_id: "gold_2", name: "金币包2", price: 3600, coin:8000, title: "" }, { product_id: "gold_3", name: "金币包3", price: 6800, coin:16000, title: "" }, { product_id: "gold_4", name: "金币包4", price: 12800, coin:32000, title: "" }, { product_id: "gold_pack_5", name: "金币包5", price: 32800, coin:100000, title: "" }, { product_id: "gold_6", name: "金币包6", price: 64800, coin:240000, title: "" }, ]; for (let i = 1; i <= 6 && i < this.itemList.children.length; i++) { const spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite); const price = this.itemList.children[i].children[1]; const title = this.itemList.children[i].children[2]; const product = products[i - 1]; if (spriteComp && product) { // TODO: 根据 product_id 或 name 设置 spriteComp.spriteFrame } if (price && product) { NumberToImage.numberToImageNodes(product.price / 100, 25, 20, "cost_", price, false) } if (title && product) { NumberToImage.numberToImageNodes(product.coin, 40, 25, "scoin_", title, true) } } NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); } //关闭商店界面 closeShop() { //销毁预制体 if(this.node.parent.getComponent("JiaZai")){ this.node.parent.getComponent("JiaZai").closeShop(); } else if(this.node.parent.getComponent("SceneManager")){ this.node.parent.getComponent("SceneManager").closeShop(); } // this.shop.destroy(); } //点击充值购买 buyProduct(event, customData) { if(!this.btn_Touch){ return; } this.btn_Touch = false; const productId = customData; let id = "10011"; let price = 100; let count = 1; id = productId; switch(productId){ case "gold_1": price = 600; break; case "gold_2": price = 3600; break; case "gold_3": price = 6800; break; case "gold_4": price = 12800; break; case "gold_pack_5": price = 100; break; case "gold_6": price = 64800; break; } console.log("获得商品id:",id,count,price); // 判断设备系统 let systemType = "Android"; try { const systemInfo = wx.getSystemInfoSync(); if (systemInfo.platform === 'ios') { systemType = "iOS"; } } catch (e) { console.error('获取系统信息失败', e); } const data = { outTradeNo:Utils.outTradeNo, price:price, payment_name:productId, payment_num:1, type:systemType, } cc.fx.GameTool.shushu_Track("init_order",data); Utils.buyProp(id,count,price,(res)=>{ console.log("获得充值结果",res); if(res == null){ MiniGameSdk.API.showToast("网络异常,充值失败请稍后再试"); this.btn_Touch = true; const dataFail = { outTradeNo:Utils.outTradeNo, price:price, payment_name:productId, payment_num:1, type:systemType, fail_reason:"网络异常,没有拉起支付", } cc.fx.GameTool.shushu_Track("payment_fail",dataFail); return; } else{ Utils.getPayInfo((data) =>{ console.log("获得轮训结果:",data); if(data.data.pay_state == 1){ this.btn_Touch = true; MiniGameSdk.API.showToast("取消充值"); const dataFail2 = { outTradeNo:Utils.outTradeNo, price:price, payment_name:productId, payment_num:1, type:systemType, fail_reason:"用户取消支付", } cc.fx.GameTool.shushu_Track("payment_fail",dataFail2); } else if(data.data.pay_state == 2){ this.btn_Touch = true; Utils.setPayInfo((data) => { console.log("设置轮训结果:",data); if(data.code === 1){ MiniGameSdk.API.showToast("充值成功"); cc.fx.GameTool.shopBuy(productId); console.log("充值成功获得金币"); const dataSuccess = { outTradeNo:Utils.outTradeNo, price:price, payment_name:productId, payment_num:1, type:systemType, } cc.fx.GameTool.shushu_Track("payment",dataSuccess); } else{ MiniGameSdk.API.showToast("网络异常,充值奖励将在登录后再次发放"); const dataFail4 = { outTradeNo:Utils.outTradeNo, price:price, payment_name:productId, payment_num:1, type:systemType, fail_reason:"成功付款,但是发货时请求服务器失败,充值成功未发货", } cc.fx.GameTool.shushu_Track("payment_fail",dataFail4); } NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); this.node.parent.getComponent("JiaZai").updateCoin(); }) } else{ NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); this.node.parent.getComponent("JiaZai").updateCoin(); const dataFail3 = { outTradeNo:Utils.outTradeNo, price:price, payment_name:productId, payment_num:1, type:systemType, fail_reason:"拉起支付后,付款时网络异常付款失败", } cc.fx.GameTool.shushu_Track("payment_fail",dataFail3); } }) } }); } // update (dt) {} }