收藏
回答

调佣半屏小程序打开收银台,显示小程序违规

问题类型 API/组件名称 终端类型 微信版本 基础库版本
Bug Navigator 微信安卓客户端 8.069 3.8.10

我们在开发聚营通支付时,需要通过半屏小程序打开聚营通收银台,但是在唤起半屏时,小程序提示违规。我们小程序没收到任何违规通知呀。

/** * 聚营通 - 微信支付(收银台小程序) * @param newOrderMessage * @param otherObj */ const onJuyingPay = async (newOrderMessage: any, otherObj: any) => { try { // TODO: mock 阶段,跳过接口调用,直接用测试参数验证收银台跳转流程 // 正式上线时将 MOCK_ENABLED 改为 false const MOCK_ENABLED = true let bizContent: any if (MOCK_ENABLED) { // 生产环境参数(测试用):appId: TLGD_390S5KWYEZVGG,mchId: 1951930032 bizContent = { mchId: '1951930032', appId: 'TLGD_390S5KWYEZVGG', signType: 'RSA', sign: 'mock_sign', timestamp: new Date().toISOString().replace('T', ' ').slice(0, 19), amount: Math.round(Number(newOrderMessage.payAmount || allPrice) * 100), // 单位:分 desc: '测试订单', notifyUrl: 'https://mock.notify.url/pay/callback', outOrderNo: `MOCK_${Date.now()}`, storeName: '测试商户名称', subject: '测试订单标题', payExpand: {}, } } else { const weChatCode = IS_WEB ? null : (await login()).code const { code, data, message } = await postOrderMobileCreateBuyerPay({ ...newOrderMessage, weChatCode, }) if (code !== 1000) { Toast.show({ title: message, icon: 'none' }) return } bizContent = JSON.parse(data.codeUrl) } const extraData = { mchId: bizContent.mchId, appId: bizContent.appId, method: 'order/miniProgramCashierPay', format: 'JSON', charset: 'utf-8', signType: bizContent.signType || 'RSA', sign: bizContent.sign, timestamp: bizContent.timestamp, version: '1.0', bizContent: JSON.stringify({ amount: bizContent.amount, desc: bizContent.desc, notifyUrl: bizContent.notifyUrl, outOrderNo: bizContent.outOrderNo, payType: 'VSP_WECHAT_MINI', storeName: bizContent.storeName, subject: bizContent.subject, isDirectPay: 0, isHideShare: 0, payExpand: bizContent.payExpand || {}, }), } console.log(extraData,'extraDataextraDataextraData') // extraData 准备好后,Navigator 下次点击时会携带正确数据跳转收银台 setJuyingExtraData(extraData) } catch (error) { console.log('onJuyingPay error :>> ', error) Toast.show({ title: '支付异常,请重试', icon: 'none' }) } }
回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容