mrr.sj.front/pages/home/components/transferMoney.vue

162 lines
4.2 KiB
Vue
Raw Normal View History

2026-03-24 11:45:13 +08:00
<template>
<view class="transferMoney">
<button @click="goWxPage">测试</button>
<button @click="getOpenId">获取code</button>
</view>
</template>
<script>
// #ifdef APP-PLUS
import {
requestMerchantTransfer
} from "@/uni_modules/uni-requestMerchantTransfer";
// #endif
import request from "@/utils/request";
export default {
name: "transferMoney",
props: {
lotteryId: {
type: Number,
default: 0,
},
},
data() {
return {};
},
methods: {
getOpenId() {
console.log("调用登录接口获取openid");
uni.login({
provider: "weixin",
onlyAuthorize: true,
success: (loginRes) => {
// console.log("loginRes:", loginRes);
const code = loginRes.code;
if (code) {
request
.post("/withdrawal/getopenid", {
code
})
.then((res) => {
console.log("获取openid成功", res.openid);
if (res.openid) {
uni.setStorageSync("app_openid", res.openid);
this.goWxPage();
}
})
.catch((err) => {
// console.error("获取openid失败", err);
});
}
},
fail: function(err) {
console.error("登录接口调用失败:", err);
},
});
},
goWxPage() {
const openid = uni.getStorageSync("app_openid");
if (!openid) {
this.getOpenId();
return;
}
const lottery_id = this.lotteryId;
console.log(
"开始发起企业付款openid:",
openid,
" lottery_id:",
lottery_id
);
request
.post("/withdrawal/transferother", {
lottery_id,
openid_app: openid
})
.then((wxPayRes) => {
console.log("wxpay res:", wxPayRes);
if (wxPayRes.code != 200) {
uni.showToast({
title: "领取失败,请稍后重试",
icon: "none",
});
return;
}
requestMerchantTransfer({
mchId: wxPayRes.data.mch_id,
appId: wxPayRes.data.appid,
package: wxPayRes.data.package_info,
success: (res) => {
console.log("requestMerchantTransfer ", res);
},
fail: (res) => {
console.log(res.errMsg, '失败');
}
});
})
.catch((err) => {
console.error("wxpay err:", err);
});
},
checkSystemType() {
try {
const systemInfo = uni.getSystemInfoSync();
const {
platform,
system
} = systemInfo;
let systemType = "";
// 优先通过 system 字段判断鸿蒙(兼容模式下 platform 仍为 android但 system 含 HarmonyOS
if (system.includes("HarmonyOS")) {
systemType = "harmony"; // 鸿蒙系统(兼容/原生)
// 进一步区分鸿蒙原生 vs 安卓兼容模式
if (platform === "harmony") {
systemType = "harmony_original"; // 纯鸿蒙原生模式
} else if (platform === "android") {
systemType = "harmony_android"; // 鸿蒙安卓兼容模式
}
} else if (platform === "android") {
systemType = "android"; // 纯安卓系统(非鸿蒙)
} else if (platform === "ios") {
systemType = "ios"; // iOS 系统
} else {
systemType = "other"; // 小程序/PC/其他系统
}
// const { isHarmony, systemType } = this.checkSystemType();
// if (isHarmony) {
// console.log("当前是鸿蒙系统");
// if (systemType === "harmony_original") {
// console.log("纯鸿蒙原生模式");
// } else if (systemType === "harmony_android") {
// console.log("鸿蒙安卓兼容模式");
// }
// } else if (systemType === "android") {
// console.log("当前是纯安卓系统");
// } else if (systemType === "ios") {
// console.log("当前是iOS系统");
// }
return {
systemType, // 系统类型harmony/harmony_original/harmony_android/android/ios/other
systemInfo, // 完整系统信息(含版本、设备型号等)
isHarmony: system.includes("HarmonyOS"), // 是否为鸿蒙系统(布尔值)
};
} catch (err) {
console.error("检测系统类型失败", err);
return {
systemType: "unknown",
isHarmony: false
};
}
},
},
};
</script>
<style scoped lang="less">
.transferMoney {}
</style>