diff --git a/src/manifest.json b/src/manifest.json index ff568f5..86924ed 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -94,12 +94,12 @@ "privacy": { "usePrivacyCheck": true, "requiredPrivateInfos": ["makePhoneCall"] - } - }, - "plugins": { - "lifeServicePlugin": { - "version": "*", - "provider": "tta5a3d31e3aecfb9b11" + }, + "plugins": { + "lifeServicePlugin": { + "version": "*", + "provider": "tta5a3d31e3aecfb9b11" + } } }, diff --git a/src/pages/client/order/create.vue b/src/pages/client/order/create.vue index 0b36401..732b75e 100644 --- a/src/pages/client/order/create.vue +++ b/src/pages/client/order/create.vue @@ -160,6 +160,8 @@ export default { imgPrefix, WeChat: undefined, wallet: "2", + orderId: "", + outOrderNo: "", }; }, computed: { @@ -222,49 +224,78 @@ export default { id: Number(this.orderData[0].goods_id), }; - // console.log(this.orderData,'???') createCartOrder(params) .then((res) => { - const plugin = tt.requirePlugin("tta5a3d31e3aecfb9b11"); - plugin.createOrder({ - goodsList: [ - { - quantity: 10, // 购买数量 必填 - price: 1, // 商品价格 必填 - goodsName: "测试商品", // 商品名称 必填 - goodsPhoto:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.ibaotu.com%2Fgif%2F19%2F48%2F47%2F76Z888piCd6W.gif%21fwpaa50%2Ffw%2F700&refer=http%3A%2F%2Fpic.ibaotu.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1644654365&t=5fc9b5fdad0a16264a9a9c09c14b3af9", // 商品图片链接 必填 - goodsId: "123", // 商品ID 必填(请务必使用小程序商品) - goodsType: 2, // 商品类型 必填 - }, - ], - payment: { - totalAmount: 10, // 订单总价 必填 - }, - success: (res) => { - const { orderId, outOrderNo } = res; - console.log("success res", res); - console.log("orderId", orderId, "outOrderNo", outOrderNo); - this.setData({ orderId, outOrderNo }); - uni.navigateTo({ - url:"/pages/client/order/list", - }); - }, - fail: (res) => { - console.log("fail res", res); - const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; - if (errLogId) { - console.log("预下单失败", errNo, errMsg, errLogId); + uni.hideLoading(); + + // Check if tt and requirePlugin are available + if (typeof tt !== 'undefined' && tt.requirePlugin) { + try { + const plugin = tt.requirePlugin("lifeServicePlugin"); + if (plugin && plugin.createOrder) { + plugin.createOrder({ + skuList: res.data.skuList, + payment: res.data.payment, + success: (res) => { + const { orderId, outOrderNo } = res; + console.log("success res", res); + console.log("orderId", orderId, "outOrderNo", outOrderNo); + // Update data the Vue way + this.orderId = orderId; + this.outOrderNo = outOrderNo; + uni.navigateTo({ + url: "/pages/client/order/list", + }); + }, + fail: (res) => { + console.log("fail res", res); + const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; + if (errLogId) { + console.log("预下单失败", errNo, errMsg, errLogId); + } + if (orderId || outOrderNo) { + console.log("支付失败", errNo, errMsg, orderId, outOrderNo); + } + console.log(errNo, errMsg); + uni.showToast({ + title: errMsg || '支付失败', + icon: 'none' + }); + }, + }); + } else { + console.error('Plugin or createOrder method not found'); + uni.showToast({ + title: '支付插件初始化失败', + icon: 'none' + }); } - if (orderId || outOrderNo) { - console.log("支付失败", errNo, errMsg, orderId, outOrderNo); - } - console.log(errNo, errMsg); - }, - }); + } catch (error) { + console.error('Error requiring plugin:', error); + uni.showToast({ + title: '支付插件加载失败', + icon: 'none' + }); + } + } else { + console.log('TikTok Mini Program environment not detected'); + uni.showToast({ + title: '请在抖音小程序中打开', + icon: 'none' + }); + } resolve(); }) - .catch((err) => {}); + .catch((err) => { + uni.hideLoading(); + console.error('createCartOrder error:', err); + uni.showToast({ + title: '创建订单失败', + icon: 'none' + }); + reject(err); + }); }); }, },