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

162 lines
4.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>