| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118 |
- <template>
- <view class="container">
- <view class="info es-pt-34">
- <view class="u-f-ajc u-f-jsb es-ml-24" :style="{marginTop: statusBarHeight+'px'}">
- <view class="u-f-ajc" @tap="toBack">
- <image class="es-icon-64" src="/static/image/agent/member/back_white_icon.png" mode=""></image>
- </view>
- <view class="u-f-ajc">
- <image class="es-h-52 w264" src="/static/image/agent/member/member_title.png" mode=""></image>
- </view>
- <view class=""></view>
- </view>
- <view class="es-ml-32 u-f es-mt-44 info-box">
- <view class="u-f-ajc es-mr-20 avatar es-br-ban es-bc-white">
- <image class="es-br-ban es-icon-80" :src="!$isEmpty(user.avatar)?user.avatar:avatar" mode="">
- </image>
- </view>
- <view class="">
- <view class="es-c-white es-fs-32 es-fw-600">
- {{ $isEmpty(user.nickName)?"暂无昵称":user.nickName }}
- </view>
- <view class="es-mt-4 es-c-99 es-fs-24" v-if="user.isVip==1">
- 有效期至:{{ $formatDate(user.vipEndDate) }}
- </view>
- </view>
- <image class="vipBg" src="/static/image/agent/member/vip_bg.png" mode="aspectFit"></image>
- </view>
- </view>
- <view class="content es-bc-white">
- <view class="u-f-ajc u-f-jsb">
- <view class="content-card u-f-ajc u-f-fc" v-for="(item,index) in dataList" :key="index"
- @tap="changePackage(index)" :class="[pickIndex==index?'active':'es-bc-white']">
- <view class="es-fs-32 es-fw " :class="[pickIndex==index?'color995316':'es-c-22']">
- {{item.packageName}}
- </view>
- <view class="es-mt-14" :class="[pickIndex==index?'colorFE4D46':'colorD59B6D']">
- <text class="es-fs-40 es-fw-500 es-mr-4">¥</text>
- <text class="es-fs-64 es-fw ">{{item.sellPrice}}</text>
- </view>
- <view class="es-fs-24 color9A9A99 es-mt-8 delete-line">
- 原价{{item.price}}元
- </view>
- <view class="es-mt-18 content-card-btn es-fs-24 es-br-32"
- :class="[pickIndex==index?'es-c-white active-btn':'es-bc-white colorD59B6D']">
- {{descText[index]}}
- </view>
- </view>
- </view>
- <view class="priceBox es-mt-32" v-if="couponTotal>0">
- <view class="u-f">
- <view class="es-fs-24 u-f-ajc es-mr-12 es-fw-500 es-br-16 color995316 priceBox-tip">
- 开通可得
- </view>
- <view class="es-fs-36 es-fw-bold colorFFF3DE es-mr-26">
- {{couponTotal}}张通用红包
- </view>
- <view class="u-f es-ae yuanBox">
- <view class="es-fs-60 es-fw-bold colorFFF3DE">
- {{couponOverallPrice}}
- </view>
- <view class="es-fs-20 es-fw-bold colorFF261D yuan u-f-ajc es-mb-20">
- 元
- </view>
- </view>
- </view>
- <view class="es-mt-30 u-f priceBox-price">
- <view class="es-mr-8 es-br-16 colorFE4D46 u-f-ajc u-f-fc priceBox-price-list"
- v-for="(item,index) in fsCouponList" :key="index">
- <view class="">
- <text class="es-fs-32">¥</text>
- <text class="es-fs-44 es-fw-bold">{{item.price}}</text>
- </view>
- <view class="u-f-ajc ">
- <image class="red_envelope" src="/static/image/agent/member/red_envelope_list_bg.png"
- mode=""></image>
- </view>
- <view class="es-mt-4 es-fs-24" v-if="item.minPrice>0">
- 满{{item.minPrice}}元可用
- </view>
- </view>
- </view>
- <view class="priceBox-btn es-mt-24 u-f-ajc es-mr-24" v-if="false">
- <text class="es-fs-36 es-fw-500 es-mr-14 colorFE4D46">一键领取优惠券</text>
- <text class="es-fs-24 es-fw-600 es-mr-6 priceBox-btn-bg0 es-c-white">{{timeArr.hours}}</text>
- <text class="es-fs-24 es-fw-600 es-mr-6">:</text>
- <text class="es-fs-24 es-fw-600 es-mr-6 priceBox-btn-bg0 es-c-white">{{timeArr.minutes}}</text>
- <text class="es-fs-24 es-fw-600 es-mr-6">:</text>
- <text class="es-fs-24 es-fw-600 es-mr-10 priceBox-btn-bg0 es-c-white">{{timeArr.seconds}}</text>
- <text class="es-fs-24 es-c-22">后结束</text>
- </view>
- </view>
- <view class="es-mt-32 u-f-ajc">
- <view class="left-line left-lineBg es-mr-24"></view>
- <view class="es-fs-40 es-c-22 es-fw es-mr-24">
- 会员六大特权
- </view>
- <view class="left-line right-line right-lineBg"></view>
- </view>
- <scroll-view scroll-x="true" class="scroll-X">
- <view class="es-mt-32 u-f">
- <view class="es-mr-64 u-f-ajc u-f-fc" v-for="(item,index) in list" :key="index">
- <view class="u-f-ajc">
- <image class="es-br-ban es-icon-96" :src="item.imageUrl" mode="">
- </image>
- </view>
- <view class="u-f-ajc es-mt-12 es-fs-24 color4C2B0A" :style="{whiteSpace:'nowrap'}">
- {{item.title}}
- </view>
- </view>
- </view>
- </scroll-view>
- </view>
- <view class="fixed es-bc-white u-f-ajc u-f-fc">
- <view class="es-fs-40 es-fw-600 fixed-btn u-f-ajc" @tap="payFun">
- ¥{{checkPrice}}/{{desc[pickIndex]}} 立即开通
- <view class="fixed-btn-text es-c-white es-fs-24 u-f-ajc">
- {{descText[pickIndex]}}
- </view>
- </view>
- <view class="es-mt-24">
- <text class="es-fs-24 es-c-75">开通即同意</text>
- <text class="es-fs-24 colorD59B6D" @tap="openH5(0)">《会员服务协议》</text>
- </view>
- </view>
- <uni-popup ref="popPayType" type="bottom" borderRadius="10rpx 10rpx 0px 0px">
- <view class="pay-box">
- <view class="title">请选择支付方式</view>
- <view class="pay-list">
- <view class="pay-item wx" @click="doBuy(1)">
- <image src="/static/images/wx.png"></image>
- <view class="name">微信支付</view>
- </view>
- <view class="pay-item alipay" @click="doBuy(2)">
- <image src="/static/images/alipay.png"></image>
- <view class="name">支付宝支付</view>
- </view>
- </view>
- </view>
- </uni-popup>
- </view>
- </template>
- <script>
- import {
- getIOSPayStatus
- } from '@/api/common.js';
- import {
- getUserInfo,
- getCouponsUnderVipPackage
- } from '@/api/user'
- import {
- getPackageList,
- createVipOrder,
- vipZfbPayment,
- getVipOrderById,
- applePayment,
- vipWxPayment,
- setIapCertificate
- } from '@/api/course'
- export default {
- data() {
- return {
- statusBarHeight: '',
- descText: ['新客体验', '限时优惠', '一单回本'],
- desc: ['月', '季', '年'],
- active: 0,
- list: [{
- imageUrl: '/static/image/agent/member/coupon_icon.png',
- title: '优惠券'
- }, {
- imageUrl: '/static/image/agent/member/system_testing_icon.png',
- title: '体制检测'
- }, {
- imageUrl: '/static/image/agent/member/health_encyclopedia_icon.png',
- title: '养生百科'
- }, {
- imageUrl: '/static/image/agent/member/classic_medical_books_icon.png',
- title: '经典医书'
- }, {
- imageUrl: '/static/image/agent/member/multi_device_login_icon.png',
- title: '多设备登录'
- }, {
- imageUrl: '/static/image/agent/member/remove_ads_icon.png',
- title: '去除广告'
- }, ],
- timer: null,
- timeArr: {},
- dataList: [],
- pickIndex: 0,
- packageItem: {
- sellPrice: 0,
- price: 0
- },
- checkPrice: 0.0,
- payTypes: ["微信支付", "支付宝支付"],
- payType: 1, //微信支付:1 支付宝支付:2
- user: {
- avatar: "/static/images/detault_head.png",
- userName: "",
- phone: "",
- nickName: "",
- },
- order: null,
- showPayTips: false,
- agree: false,
- isAgreePrivacy: false,
- isIos: false,
- showIOSPay: 0,
- isCanPay: true,
- iapChannel: null,
- restoreFlag: false,
- appleProductId: '',
- tzCashier: null,
- userInfo: null,
- couponTotal: 0,
- couponOverallPrice: 0,
- fsCouponList: [],
- }
- },
- // onBackPress() {
- // // 手动调用返回方法
- // uni.navigateBack({ delta: 1});
- // // 阻止默认的返回行为
- // return true;
- // },
- onLoad(options) {
- // #ifdef APP-PLUS
- this.tzCashier = uni.requireNativePlugin("TZBank-Cashier");
- this.isIos = this.$isIos();
- this.userInfo = JSON.parse(uni.getStorageSync("userInfo"));
- if (this.isIos) {
- this.getIOSPayStatusFun()
- } else {
- this.isAgreePrivacy = plus.runtime.isAgreePrivacy();
- }
- // #endif
- this.initData();
- const systemInfo = uni.getSystemInfoSync();
- this.statusBarHeight = systemInfo.statusBarHeight;
- },
- onShow() {
- if (this.showPayTips) {
- this.$refs.popTip.open();
- this.showPayTips = false;
- }
- this.restoreComplateRequest()
- },
- onUnload() {
- const subNVue = uni.getSubNVueById('privilege');
- if (subNVue) {
- setTimeout(e => {
- subNVue.show();
- }, 200);
- }
- },
- methods: {
- toBack() {
- uni.navigateBack()
- },
- payFun() {
- this.$refs.popPayType.open()
- },
- async getCouponsUnderVipPackageFun() {
- const res = await getCouponsUnderVipPackage({
- packageId: this.dataList[this.pickIndex].packageId
- })
- if (res.code == 200) {
- this.couponTotal = res.data.couponTotal
- this.couponOverallPrice = res.data.couponOverallPrice
- this.fsCouponList = res.data.fsCouponList
- } else {
- uni.showToast({
- icon: 'none',
- title: res.msg
- })
- }
- },
- padZero(num) {
- return num < 10 ? `0${num}` : num.toString();
- },
- formatCountdown(seconds) {
- // 1. 先校验输入:确保是有效正整数,避免负数/非数字导致计算错误
- const totalSeconds = Math.max(0, Math.floor(Number(seconds) || 0));
- // 2. 重新梳理计算逻辑(核心修复)
- const hours = Math.floor(totalSeconds / 3600);
- const remainingAfterHours = totalSeconds % 3600; // 小时取余后剩余的秒数
- const minutes = Math.floor(remainingAfterHours / 60);
- const secs = remainingAfterHours % 60;
- // 3. 返回格式化结果(补零+原始值)
- return {
- hours: this.padZero(hours),
- minutes: this.padZero(minutes),
- seconds: this.padZero(secs),
- total: totalSeconds // 确保total是处理后的有效数值
- };
- },
- updateCountdown(now, targetTime) {
- console.log(now, targetTime);
- const distance = targetTime - now;
- console.log('distance', distance);
- // 时间计算
- const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)) || '00';
- const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)) || '00';
- const seconds = Math.floor((distance % (1000 * 60)) / 1000) || '00';
- // 显示倒计时
- console.log(hours + "小时 " + minutes + "分钟 " + seconds + "秒 ");
- // 如果倒计时结束,显示消息并停止计时器
- if (distance < 0) {
- clearInterval(this.timer);
- }
- return {
- hours,
- minutes,
- seconds
- }
- },
- timingFun() {
- const now = new Date().getTime();
- const end = now + 600000
- this.timer = setInterval(this.updateCountdown(now, end), 1000)
- },
- getIOSPayStatusFun() {
- getIOSPayStatus().then(res => {
- if (res.code == 200) {
- this.showIOSPay = res.iosPayStatus
- }
- })
- },
- initData() {
- this.getPackageList();
- this.getUserInfo();
- },
- getPackageList() {
- getPackageList().then(res => {
- if (res.code == 200) {
- this.dataList = res.data;
- this.packageItem = this.dataList[0];
- this.checkPrice = this.packageItem.sellPrice;
- this.appleProductId = this.packageItem.appleProductId
- this.getCouponsUnderVipPackageFun()
- }
- },
- rej => {}
- );
- },
- doBuy(type) {
- this.payType = type
- this.createVipOrder();
- },
- createVipOrder() {
- // if (!this.agree) {
- // uni.showToast({
- // title: "请同意相关协议",
- // icon: 'none'
- // });
- // return
- // }
- if (!this.$isLogin()) {
- this.$showLoginPage();
- return;
- }
- if (this.isIos && this.showIOSPay != 1) {
- uni.showToast({
- title: '请开通苹果支付',
- icon: 'none'
- });
- return
- }
- if (this.isIos && this.showIOSPay == 1) {
- this.payType = 2
- }
- uni.showLoading({
- title: ""
- });
- let params = {
- "packageId": this.packageItem.packageId,
- "payType": this.payType
- };
- createVipOrder(params).then(res => {
- console.log("qxj createVipOrder res:" + JSON.stringify(res));
- uni.hideLoading();
- this.$refs.popPayType.close()
- if (res.code == 200) {
- this.order = res.order;
- console.log("qxj payType", this.payType);
- if (this.payType == 1) { //微信支付
- this.doWxPay();
- } else if (this.payType == 2 && this.isIos) { //苹果
- this.doApplePay()
- } else { //支付宝
- this.doAlipay();
- }
- } else {
- uni.showToast({
- title: res.msg,
- icon: 'none'
- });
- }
- },
- rej => {}
- );
- },
- changePackage(index) {
- this.pickIndex = index;
- this.packageItem = this.dataList[index];
- this.checkPrice = this.packageItem.sellPrice;
- this.appleProductId = this.packageItem.appleProductId
- this.getCouponsUnderVipPackageFun()
- },
- changePayType(index) {
- this.payType = index + 1;
- },
- getUserInfo() {
- let that = this;
- getUserInfo().then(res => {
- if (res.code == 200) {
- if (res.user != null) {
- uni.setStorageSync('userInfo', JSON.stringify(res.user));
- this.user = res.user;
- } else {
- uni.showToast({
- icon: 'none',
- title: res.msg,
- });
- }
- }
- },
- rej => {}
- );
- },
- doAlipay() {
- var data = {
- orderId: this.order.orderId
- };
- let that = this;
- // #ifdef APP-PLUS
- uni.showLoading();
- vipZfbPayment(data).then(res => {
- uni.hideLoading();
- // that.$refs.popPayType.close();
- that.$refs.popTip.open();
- if (res.code == 200) {
- if (res.type == "tz") {
- const match = res.data.body.url.match(/[\?&]businessCstNo=([^&]+)/);
- const businessCstNo = match ? match[1] : null;
- console.log("qxj tzCashier:" + this.tzCashier + " businessCstNo:" + businessCstNo);
- this.tzCashier.pay({
- env: 0,
- wxMiniProgramType: 0,
- wxAppId: 'wx703c4bd07bbd1695',
- wxUniversalLink: "https://yjf.runtzh.com/",
- orderFlowNo: res.data.body.orderFlowNo,
- businessCstNo: businessCstNo,
- platMerCstNo: res.data.body.platMerCstNo
- }, (res) => {
- uni.$emit('closePrivilege', {});
- that.showPayTips = true;
- });
- } else if (res.type == 'hf') {
- if (uni.getSystemInfoSync().platform == 'android') {
- var alipayScheme = 'alipays://platformapi/startApp?&saId=10000007&qrcode=' + res
- .data.qr_code;
- } else {
- var alipayScheme = 'alipay://platformapi/startApp?&saId=10000007&qrcode=' + res
- .data.qr_code;
- }
- // 在uni-app中使用plus.runtime.openURL打开URL
- plus.runtime.openURL(alipayScheme, function(error) {
- });
- uni.$emit('closePrivilege', {});
- that.showPayTips = true;
- }
- } else {
- uni.showToast({
- title: res.msg,
- icon: 'none'
- })
- }
- },
- rej => {}
- );
- // #endif
- },
- doWxPay() {
- var data = {
- orderId: this.order.orderId
- };
- let that = this;
- uni.showLoading();
- //眺收银台
- // vipWxPayment(data).then(res => {
- // uni.hideLoading();
- // //that.$refs.popPayType.close();
- // that.$refs.popTip.open();
- // if(res.code==200){
- // console.log('weixcin',res)
- // if(res.type=="tz"){
- // let businessCstNo=that.userInfo.userId;
- // if(!!res.data.body.url){
- // const match = res.data.body.url.match(/[\?&]businessCstNo=([^&]+)/);
- // businessCstNo = match ? match[1] : null;
- // }
- // console.log("qxj tzCashier:"+this.tzCashier+" businessCstNo:"+businessCstNo);
- // this.tzCashier.pay({
- // env:0,
- // wxMiniProgramType:0,
- // wxAppId:"wx703c4bd07bbd1695",
- // wxUniversalLink:"https://yjf.runtzh.com/",
- // orderFlowNo:res.data.body.orderFlowNo,
- // businessCstNo:businessCstNo,
- // platMerCstNo:res.data.body.platMerCstNo
- // },(res)=>{
- // console.log('weixcin',res)
- // uni.$emit('closePrivilege', {});
- // that.showPayTips=true;
- // });
- // }
- // else if(res.type=='hf'){
- // uni.$emit('closePrivilege', {});
- // that.showPayTips=true;
- // }
- // }
- // else{
- // uni.showToast({title:res.msg,icon:'none'})
- // }
- // },
- // rej => {}
- // );
- //跳转小程序支付
- plus.share.getServices(function(res) {
- var sweixin = null;
- for (var i = 0; i < res.length; i++) {
- var t = res[i];
- if (t.id == 'weixin') {
- sweixin = t;
- }
- }
- if (sweixin) {
- let path = '/pages_order/userVipOrderPayment?orderId=' + that.order.orderId +
- "&payMethod=app";
- console.log('调起小程序 path:' + path);
- //唤起微信跳转小程序
- sweixin.launchMiniProgram({
- id: "gh_feb7753a310b", //gh_7a6a32e5ef61 御君方互医
- path: '/pages_order/userVipOrderPayment?orderId=' + that.order.orderId +
- "&payMethod=app",
- type: 0 // 微信小程序版本类型,可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。
- }, function() {
- console.log("微信唤起成功");
- return true;
- }, function(e) {
- console.log("微信唤起失败", e);
- uni.showToast({
- title: '微信唤起失败,请检查是否有微信应用',
- icon: 'none'
- });
- return false;
- });
- that.showPayTips = true;
- uni.$emit('closePrivilege', {});
- } else {
- uni.showToast({
- title: '微信唤起失败,请检查是否有微信应用',
- icon: 'none',
- duration: 3000
- });
- return false;
- }
- }, function(res) {
- console.log(JSON.stringify(res));
- });
- },
- getVipOrderById() {
- getVipOrderById(this.order.orderId).then(res => {
- this.$refs.popTip.close();
- if (res.code == 200) {
- if (res.data.status == 1 || res.data.payTime != null) {
- // #ifdef APP-PLUS
- if (plus.runtime.channel == "baidu") { //获取渠道标识
- let bdCmdType = uni.getStorageSync("bdCmdType");
- if (bdCmdType != null && parseInt(bdCmdType) <= 2) {
- //this.$registerIdCode("orders",2,res.data.payMoney.toString()); //已下单
- }
- }
- // #endif
- this.getUserInfo();
- uni.showToast({
- title: "支付成功",
- icon: 'success'
- });
- } else {
- uni.showToast({
- title: "支付失败",
- icon: 'error'
- });
- }
- }
- setTimeout(() => {
- this.$navBack();
- }, 2000);
- },
- rej => {}
- );
- },
- openH5(index) {
- uni.setStorageSync('url', index == 0 ? "https://userapp.his.cdwjyyh.com/web/userAgreement" :
- "https://userapp.hbhdt.top/web/vipAutomaticService");
- uni.navigateTo({
- url: "/pages/index/h5"
- })
- },
- closeTip() {
- this.$refs.popTip.close();
- this.getVipOrderById();
- },
- confirmTip() {
- uni.showLoading({
- title: "请稍侯...",
- mask: true
- });
- setTimeout(() => {
- uni.hideLoading();
- this.getVipOrderById();
- uni.$emit('refreshUser', {});
- }, 2000);
- },
- handleAgree() { // 同意
- this.agree = !this.agree
- if (this.isIos) {
- if (this.agree) {
- plus.runtime.agreePrivacy()
- } else {
- plus.runtime.disagreePrivacy();
- }
- }
- },
- doApplePay() {
- var data = {
- orderId: this.order.orderId
- };
- let that = this;
- uni.showLoading({
- title: ""
- });
- applePayment(data).then(res => {
- uni.hideLoading();
- console.log("applePayment===", res)
- if (res.code == 200) {
- this.checkApplePay(res.payCode)
- } else {
- uni.showLoading({
- title: res.msg,
- icon: none
- })
- }
- }).catch(err => {
- uni.hideLoading();
- })
- },
- checkApplePay(payCode) {
- const that = this
- uni.showLoading({
- title: '检测支付环境...',
- mask: true
- })
- uni.getProvider({
- service: 'payment',
- success: (res) => {
- let iapChannel = res.providers.find((channel) => channel.id === 'appleiap');
- that.iapChannel = iapChannel
- if (!iapChannel) {
- console.log('Apple IAP channel not found. Check device & configuration.');
- uni.hideLoading()
- uni.showToast({
- title: "不支持苹果支付",
- icon: 'none'
- })
- return;
- }
- // 获取订单信息,必须调用此方法才能进行 iap 支付
- iapChannel.requestOrder([that.appleProductId], function(orderList) {
- console.log('requestOrder success666: ', orderList)
- that.applePay(payCode)
- }, function(e) {
- uni.showToast({
- title: "获取产品信息失败",
- icon: 'none'
- })
- console.log('requestOrder failed: ' + JSON.stringify(e));
- })
- },
- fail: (err) => {
- console.log('Failed to get payment provider:', err);
- uni.hideLoading()
- uni.showToast({
- title: "获取支付通道失败",
- icon: 'none'
- })
- }
- });
- },
- // 请求是否有已完成未关闭的订单
- restoreComplateRequest() {
- const that = this
- if (this.iapChannel) {
- this.iapChannel.restoreComplateRequest({
- manualFinishTransaction: true, // 3.5.1+ 支持,设置此参数后需要开发者主动关闭订单,参见下面的关闭订单方法 finishTransaction()
- username: "USERID_" + that.user.userId
- }, function(res) {
- // res 格式为数组存放恢复的IAP商品交易信息对象 IAPTransaction,需要将返回的支付凭证传给后端进行二次认证
- //如果有并且状态为已支付则请求关闭并回调给后端
- console.log("已完成未关闭的订单信息:", res)
- if (res.length > 0) {
- //轮询关闭订单
- res.map(item => {
- that.finishTransaction(item, that.iapChannel)
- })
- }
- });
- }
- },
- // 关闭订单
- finishTransaction(transaction, iapChannel) {
- console.log("==finishTransaction===")
- return new Promise((resolve, reject) => {
- this.iapChannel.finishTransaction(transaction, (res) => {
- console.log("==fresolve inishTransaction===", res)
- resolve(res);
- }, (err) => {
- console.log("==err inishTransaction===", err)
- reject(err);
- });
- });
- },
- //苹果支付
- applePay(payCode) {
- console.log("苹果支付", this.order.orderId, payCode)
- let that = this
- uni.showLoading({
- title: '支付中...',
- mask: true
- })
- this.restoreFlag = true
- uni.requestPayment({
- provider: 'appleiap',
- orderInfo: {
- productid: that.appleProductId,
- username: 'USERID_' + this.user.userId, // 透传参数,一般用于标记订单和用户的关系,向苹果服务器二次验证票据时返回此字段
- quantity: 1, // 购买数量,至少大于等于 1
- manualFinishTransaction: true,
- optimize: true // 设置 optimize: true 解决丢单问题
- },
- async success(res) {
- console.log("苹果支付===", res)
- that.restoreFlag = false
- // {
- // "payment": {
- // "productid": "001",
- // "quantity": "1",
- // "username": "ORDERID562"
- // },
- // "transactionDate": "2025-07-02 18:20:37",
- // "transactionIdentifier": "2000000953130653",
- // "transactionReceipt": "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",
- // "transactionState": "1",
- // "errMsg": "requestPayment:ok"
- // }
- if (res.transactionState == '1') {
- //调用后端接口验签
- let data = {
- payCode: payCode,
- transactionId: res.transactionIdentifier,
- receipt: res.transactionReceipt,
- chooseEnv: false, // 是否选择正式环境
- payclassifyId: that.appleProductId,
- classify: 5, // 5:appvip,course
- }
- that.submitMisson(data, res)
- }
- },
- fail(e) {
- console.log('调起苹果支付失败:', e)
- that.isCanPay = true
- uni.showLoading({
- title: '支付失败',
- icon: "error"
- })
- },
- complete() {
- that.isCanPay = true
- uni.hideLoading()
- }
- })
- },
- // 苹果内购二次校验
- submitMisson(data, transaction) {
- const that = this
- uni.showLoading({
- title: '正在处理支付结果...',
- mask: true
- })
- setIapCertificate(data).then(async res => {
- uni.hideLoading()
- if (res.code == 200) {
- //给支付按钮解锁
- that.isCanPay = true
- console.log("submitMisson===", res)
- if (res.status == 1 || res.payTime != null) {
- // #ifdef APP-PLUS
- if (plus.runtime.channel == "baidu") { //获取渠道标识
- let bdCmdType = uni.getStorageSync("bdCmdType");
- if (bdCmdType != null && parseInt(bdCmdType) <= 2) {
- //this.$registerIdCode("orders",2,res.data.payMoney.toString()); //已下单
- }
- }
- // #endif
- that.getUserInfo();
- await that.finishTransaction(transaction)
- uni.showToast({
- title: "支付成功",
- icon: 'success'
- });
- } else {
- uni.showToast({
- title: "支付失败",
- icon: 'error'
- });
- }
- }
- }).catch(() => {
- uni.hideLoading()
- })
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .container {
- background: #141517;
- height: auto;
- min-height: 100vh;
- padding-bottom: 206rpx;
- overflow-y: scroll;
- overflow-x: hidden;
- display: flex;
- flex-direction: column;
- }
- .info {
- .info-box {
- position: relative;
- .vipBg {
- position: absolute;
- right: -64rpx;
- bottom: -160rpx;
- }
- }
- .w264 {
- width: 264rpx;
- }
- .avatar {
- padding: 4rpx;
- }
- }
- .content {
- margin-top: 92rpx;
- padding: 40rpx 32rpx 40rpx;
- border-radius: 40rpx 40rpx 0 0;
- flex: 1;
- .es-mr-64 {
- margin-right: 64rpx;
- }
- .active {
- background: linear-gradient(135deg, #FEF7E7 0%, #FFEEE5 100%);
- border-radius: 24rpx 24rpx 24rpx 24rpx;
- border: 4rpx solid;
- border-image: linear-gradient(135deg, rgba(254, 223, 179, 1), rgba(254, 224, 189, 1)) 4 4;
- }
- .content-card {
- padding: 32rpx;
- border-radius: 24rpx;
- border: 4rpx solid #ECECEC;
- .delete-line {
- text-decoration: line-through;
- }
- .color9A9A99 {
- color: #9A9A99;
- }
- .content-card-btn {
- padding: 12rpx 30rpx;
- border: 1rpx solid #D59B6D;
- }
- .active-btn {
- border: none;
- background: linear-gradient(270deg, #FE6300 0%, #FE9D00 100%);
- }
- }
- // 价格
- .priceBox {
- padding: 24rpx 0 24rpx 24rpx;
- background-image: url('/static/image/agent/member/frame-bg.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- position: relative;
- .priceBox-tip {
- padding: 4rpx 12rpx;
- background: linear-gradient(90deg, #FEF1E5 0%, #FFE6B5 100%);
- border-radius: 8rpx;
- }
- .yuanBox {
- position: absolute;
- top: 0;
- right: 48rpx;
- }
- .yuan {
- width: 24rpx;
- height: 24rpx;
- background: #FFF3DE;
- border-radius: 4rpx;
- }
- .colorFFF3DE {
- color: #FFF3DE;
- }
- .priceBox-price {
- overflow-x: auto;
- overflow-y: hidden;
- .priceBox-price-list {
- flex-shrink: 0;
- width: 164rpx;
- height: 164rpx;
- background: #FFFCF6;
- .red_envelope {
- width: 88rpx;
- height: 17rpx;
- }
- }
- }
- .priceBox-btn {
- height: 96rpx;
- background: linear-gradient(180deg, #FFF4D5 0%, #FFE5B1 100%);
- border-radius: 16rpx;
- .priceBox-btn-bg0 {
- padding: 8rpx;
- // width: 40rpx;
- // height: 40rpx;
- background: #222222;
- border-radius: 8rpx;
- }
- }
- }
- .left-line {
- width: 120rpx;
- height: 6rpx;
- border-radius: 3rpx;
- }
- .left-lineBg {
- background: linear-gradient(90deg, rgba(255, 247, 226, 0) 0%, #F7D3B6 100%);
- }
- .right-lineBg {
- background: linear-gradient(90deg, #F7D3B6 0%, rgba(255, 247, 226, 0) 100%);
- }
- .color4C2B0A {
- color: #4C2B0A;
- }
- }
- .colorFF261D {
- color: #FF261D;
- }
- .color995316 {
- color: #995316;
- }
- .colorFE4D46 {
- color: #FE4D46;
- }
- .colorD59B6D {
- color: #D59B6D;
- }
- .fixed {
- position: fixed;
- bottom: 0;
- box-shadow: 0rpx 0rpx 8rpx 6rpx rgba(0, 0, 0, 0.05);
- border-radius: 40rpx 40rpx 0rpx 0rpx;
- padding: 32rpx;
- width: 100vw;
- box-sizing: border-box;
- .fixed-btn {
- height: 104rpx;
- width: 100%;
- background: linear-gradient(90deg, #E8C591 0%, #F5DEB2 100%);
- box-shadow: 0rpx 12rpx 11rpx 0rpx rgba(200, 156, 105, 0.2);
- border-radius: 52rpx 52rpx 52rpx 52rpx;
- color: #995316;
- position: relative;
- .fixed-btn-text {
- position: absolute;
- top: -24rpx;
- right: 26rpx;
- width: 128rpx;
- height: 56rpx;
- background: linear-gradient(270deg, #FE6300 0%, #FE9D00 100%);
- border-radius: 32rpx 32rpx 32rpx 0;
- }
- }
- }
- .pay-box {
- border-radius: 30rpx 30rpx 0rpx 0rpx;
- padding: 30rpx;
- height: 350rpx;
- background-color: #fff;
- width: 100%;
- display: flex;
- flex-direction: column;
- text-align: center;
- justify-content: flex-start;
- .title {
- font-size: 32rpx;
- font-weight: bold;
- color: #111;
- }
- .pay-list {
- margin-top: 50rpx;
- display: flex;
- text-align: center;
- justify-content: center;
- .pay-item {
- margin: 10rpx;
- padding: 30rpx 0rpx;
- border-radius: 60rpx;
- background-color: green;
- flex: 1;
- display: flex;
- text-align: center;
- justify-content: center;
- image {
- width: 40rpx;
- height: 40rpx;
- }
- .name {
- margin-left: 15rpx;
- font-size: 32rpx;
- font-weight: bold;
- color: #fff;
- }
- }
- .wx {
- background-color: #09ba08;
- }
- .alipay {
- background-color: #04a9ed;
- }
- }
- }
- </style>
|