文件
fenleixinxi/scratch/replace_platform_audit.js
MiAn b0eb1134a5 feat: 新增微信小程序虚拟支付提审防审模式及相关功能
本次提交主要实现微信小程序虚拟支付提审防审机制,包括:
1. 后台配置虚拟支付防审开关,支持开启/关闭模式
2. 前端根据开关状态及设备类型,iOS设备自动触发合规提示
3. 分销模块调整提现规则,无门槛即时提现
4. 登录页面优化,增加返回和暂不登录入口,符合微信审核规范
5. 新增提现记录页面,优化分销中心界面布局

该功能确保微信提审期间能顺利通过审核,审核通过后可一键切换为正常运营模式,无需重新发布小程序代码。
2026-11-01 22:41:27 +08:00

81 行
2.5 KiB
JavaScript

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

const fs = require('fs');
// 1. 修改 member/index.vue
let file1 = 'uniapp/pages/member/index.vue';
let content1 = fs.readFileSync(file1, 'utf8');
let target1 = ` isIosAudit() {
// #ifdef MP-WEIXIN
// 后台动态开关:开启时(true)走提审合规模式;审核通过后在后台关闭(false)立即全端恢复原状!
return uiState.virtualPayAudit !== false
// #endif
return false
},`;
let replacement1 = ` /**
* 是否触发 iOS 虚拟支付合规机制(仅针对 iOS 设备且后台开启提审保护)
* 微信官方仅对 iOS 端严查虚拟支付,Android 端完全合规支持直接支付;
* 故 Android 设备正常购买,仅在真实 iOS 设备(或工具模拟 iOS)下启动合规提示。
* @returns {boolean}
*/
isIosAudit() {
// #ifdef MP-WEIXIN
if (uiState.virtualPayAudit === false) {
return false
}
try {
const sys = uni.getSystemInfoSync() || {}
const platform = (sys.platform || '').toLowerCase()
const isIos = platform === 'ios'
const isDevtoolsIos = platform === 'devtools' && /iphone|ipad|ipod/i.test(sys.model || '')
return isIos || isDevtoolsIos
} catch (e) {
return false
}
// #endif
return false
},`;
content1 = content1.replace(target1, replacement1);
fs.writeFileSync(file1, content1, 'utf8');
// 2. 修改 member/recharge.vue
let file2 = 'uniapp/pages/member/recharge.vue';
let content2 = fs.readFileSync(file2, 'utf8');
let target2 = ` isIosAudit() {
// #ifdef MP-WEIXIN
// 后台动态开关:开启时(true)走提审合规模式;审核通过后在后台关闭(false)立即全端恢复原状!
return uiState.virtualPayAudit !== false
// #endif
return false
},`;
let replacement2 = ` /**
* 是否触发 iOS 虚拟支付合规机制(仅针对 iOS 设备且后台开启提审保护)
* 微信官方仅限制 iOS 端虚拟充值,Android 端完全合规支持直接支付。
* @returns {boolean}
*/
isIosAudit() {
// #ifdef MP-WEIXIN
if (uiState.virtualPayAudit === false) {
return false
}
try {
const sys = uni.getSystemInfoSync() || {}
const platform = (sys.platform || '').toLowerCase()
const isIos = platform === 'ios'
const isDevtoolsIos = platform === 'devtools' && /iphone|ipad|ipod/i.test(sys.model || '')
return isIos || isDevtoolsIos
} catch (e) {
return false
}
// #endif
return false
},`;
content2 = content2.replace(target2, replacement2);
fs.writeFileSync(file2, content2, 'utf8');
console.log('REPLACED_PLATFORM_AWARE_AUDIT_OK');