> 技术文档 > 最新版本微信小程序提现|微信商户账户提现功能使用指南[uniapp可用]_uniapp 小程序提现

最新版本微信小程序提现|微信商户账户提现功能使用指南[uniapp可用]_uniapp 小程序提现

在这里插入图片描述

文章目录

  • 微信商户账户提现功能使用指南
    • 一、产品概述
    • 二、功能接入流程
      • 1. 开通商家转账功能
      • 2. 资金充值
    • 三、发起转账实现
  • 微信商家转账功能实现详解
    • 一、转账功能整体流程
    • 二、前端实现详细解析
      • 1. 基础校验与参数准备
      • 2. 调用后端API准备转账
      • 3. 调用微信转账接口
      • 4. 兼容性处理
    • 三、后端关键处理逻辑
      • 1. 生成预转账订单
      • 2. 安全校验要点
    • 四、不同场景的转账实现
      • 1. 营销活动转账
      • 2. 佣金报酬转账
      • 3. 企业赔付转账
    • 五、错误处理与调试
      • 常见错误码处理
      • 调试建议
    • 六、安全注意事项
      • 关键配置项
    • 七、转账后操作
    • 八、注意事项

最新版本微信小程序提现|微信商户账户提现功能使用指南[uniapp可用]

微信商户账户提现功能使用指南

一、产品概述

微信商家转账功能为商户提供向用户微信零钱转账的服务,具有免费、安全、实时到账的特点。该功能已于2025年1月15日完成升级,新版取消了收款用户管理和商户出资确认功能。

官方提现功能实现链接和官方内容:https://pay.weixin.qq.com/doc/v3/merchant/4012711988

最新版本微信小程序提现|微信商户账户提现功能使用指南[uniapp可用]_uniapp 小程序提现

主要特点

  • 资金实时到账,转账成功后不可退回
  • 用户需在微信官方页面确认收款方式
  • 支持多种转账场景配置
  • 提供安全防护和系统诊断服务

二、功能接入流程

1. 开通商家转账功能

商户需按以下步骤开通权限:

  1. 登录商户平台申请开通产品权限
  2. 按照开发指引进行系统开发接入

2. 资金充值

在商户平台完成资金充值后,方可发起转账操作。(是一个单独的账户,需要自己先充值进去测试一下)

三、发起转账实现

注:该功能暂时在微信开发工具上无法测试,只能通过真机测试。

最新版本微信小程序提现|微信商户账户提现功能使用指南[uniapp可用]_uniapp 小程序提现

微信商家转账功能实现详解

一、转账功能整体流程

微信商家转账功能的完整实现流程可分为以下几个步骤:

  1. 商户系统准备:开通权限、配置基本信息
  2. 前端准备转账数据:收集必要参数并验证
  3. 后端生成预转账订单:准备签名和加密数据
  4. 调用微信转账API:实际发起转账请求
  5. 处理转账结果:成功/失败回调处理

二、前端实现详细解析

以下是对前端代码的逐部分解析:

1. 基础校验与参数准备

const putPcsOrder = () => { // 表单验证 if (!validateForm()) return; // 准备转账参数 const params = { memberId: memberStore.profile.id, // 用户ID type: 2, // 转账类型 comment: \"这是备注信息\", // 转账备注(用户可见) amount: withdrawAmount.value, // 转账金额 name: userName.value, // 收款人姓名(用于实名校验) withdrawals: { comment: \"这是备注信息\", // 商户系统内部备注 }, };

关键参数说明

  • memberId:商户系统内的用户唯一标识
  • type:区分不同类型的转账业务
  • amount:转账金额(单位:元)
  • name:当金额>2000元时必须提供,用于实名验证

2. 调用后端API准备转账

 // 调用后端API准备转账参数 putPcsOrderAPI(params) .then((res) => { // 获取微信支付参数 jsWApiParams({ packageParam: res.v, })

后端处理逻辑

  1. 验证商户余额是否充足
  2. 生成商户内部转账单号
  3. 按照微信规范准备签名数据
  4. 返回包含加密信息的package

3. 调用微信转账接口

 .then((resjsWApiParams) => { // 检查微信API可用性 if (wx.canIUse(\"requestMerchantTransfer\")) { // 调用微信转账API wx.requestMerchantTransfer({ mchId: resjsWApiParams.mchId, // 微信商户号 appId: resjsWApiParams.appId, // 公众号/小程序APPID package: resjsWApiParams.package, // 加密的转账数据包 success: (res) => {  // 处理成功情况  uni.navigateTo({ url: \"/pages/main/index?index=4\",  }); }, fail: (res) => {  console.log(\"转账失败:\", res);  // 这里应添加失败处理逻辑 }, });

微信API参数说明

  • mchId:微信支付商户号
  • appId:发起转账的公众号/小程序ID
  • package:包含转账详情的加密数据包

效果展示:

最新版本微信小程序提现|微信商户账户提现功能使用指南[uniapp可用]_uniapp 小程序提现

完整代码:

const putPcsOrder = () => { putPcsOrderAPI({ memberId: memberStore.profile.id, type: 2, comment: \"这是备注信息\", amount: withdrawAmount.value, name: userName.value, withdrawals: { comment: \"这是备注信息\", }, }) .then((res) => { console.log(res, \"jsWApiParams\"); jsWApiParams({ package: res.v, packageParam: res.v, }).then((resjsWApiParams) => { console.log(resjsWApiParams, \"resjsWApiParams\"); if (wx.canIUse(\"requestMerchantTransfer\")) { wx.requestMerchantTransfer({ mchId: resjsWApiParams.mchId, appId: resjsWApiParams.appId, package: resjsWApiParams.package, success: (res) => {  // res.err_msg将在页面展示成功后返回应用时返回ok,并不代表付款成功  console.log(\"success:\", res);  uni.navigateTo({ url: \"/pages/main/index?index=4\", success: () => {  console.log(\"跳转到支付成功页\"); },  }); }, fail: (res) => {  console.log(\"fail:\", res); }, }); } else { wx.showModal({ content: \"你的微信版本过低,请更新至最新版本。\", showCancel: false, }); } }); }) .catch((err) => { console.log(err); });};

4. 兼容性处理

 } else { // 微信版本过低处理 wx.showModal({ content: \"你的微信版本过低,请更新至最新版本。\", showCancel: false, }); } }); }) .catch((err) => { // API调用错误处理 console.log(err); });};

三、后端关键处理逻辑

虽然前端代码中不直接体现,但后端需要完成以下关键操作:

1. 生成预转账订单

// 伪代码示例function generateTransferOrder(params) { // 1. 验证用户信息 const user = validateUser(params.memberId); // 2. 检查余额 if (user.balance < params.amount) { throw new Error(\'余额不足\'); } // 3. 生成商户订单号 const outTradeNo = generateOutTradeNo(); // 4. 准备微信转账参数 const wechatParams = { mchid: config.wechat.mchId, appid: config.wechat.appId, out_trade_no: outTradeNo, amount: params.amount * 100, // 转为分 desc: params.comment, ... }; // 5. 生成签名 wechatParams.sign = generateSign(wechatParams); // 6. 返回加密后的package return { v: encryptPackage(wechatParams) };}

2. 安全校验要点

  1. IP白名单:必须在微信商户平台配置合法IP
  2. 频率限制:防止高频转账攻击
  3. 金额校验:单笔和日累计限额检查
  4. 实名验证:大额转账强制实名校验

四、不同场景的转账实现

根据业务场景不同,转账实现有所差异:

1. 营销活动转账

// 需要额外传入场景信息const params = { ...baseParams, scene: \'MARKETING\', // 营销场景 sceneInfo: { activityName: \'新用户注册奖励\', rewardDesc: \'首次注册赠送\' }};

2. 佣金报酬转账

const params = { ...baseParams, scene: \'COMMISSION\', // 佣金场景 sceneInfo: { positionType: \'销售代表\', rewardDesc: \'2023年Q3销售提成\' }, userPerception: \'劳务报酬\' // 用户看到的收款原因};

3. 企业赔付转账

const params = { ...baseParams, scene: \'COMPENSATION\', // 赔付场景 sceneInfo: { reason: \'商品质量问题退款\' }, userPerception: \'商家赔付\'};

五、错误处理与调试

常见错误码处理

  1. 余额不足:提示用户或跳转充值
  2. 实名校验失败:提示用户检查姓名
  3. 频率限制:稍后重试或联系客服
  4. 参数错误:检查必填字段

调试建议

  1. 使用微信支付沙箱环境测试
  2. 记录完整的请求和响应数据
  3. 关注微信商户平台的告警信息
  4. 使用微信支付日志查询工具

六、安全注意事项

  1. 转账API必须部署在服务端,避免前端直接调用
  2. 敏感数据如金额、用户信息必须二次确认
  3. 实现转账结果异步通知机制
  4. 定期审计转账记录,设置异常监控

通过以上详细实现方案,商户可以安全、稳定地集成微信商家转账功能,满足各种业务场景下的资金发放需求。

关键配置项

  1. IP地址配置:需在商户平台设置接口安全IP

  2. 转账场景配置

    • 在商户平台-产品中心-商家转账-产品设置获取场景ID
    • 根据实际业务选择场景(如现金营销、企业赔付等)
    • 可自定义用户收款感知内容
  3. 背景信息报备

    • 需根据转账场景填写对应的信息类型和内容
    • 例如现金营销需填写活动名称和奖励说明
  4. 实名校验

    • 转账金额>2000元时必须校验用户实名
    • 0.3-2000元之间可自主选择是否校验
    • <0.3元不支持实名校验

七、转账后操作

  1. 查询转账记录

    • 可通过API查询30天内的转账单
    • 支持按商户单号或微信转账单号查询
  2. 获取转账账单

    • 商户平台-交易中心-资金账单
    • 次日10点后可下载前一天账单
  3. 申请电子回单

    • 转账成功的6个月内可申请
    • 用于审计和报税凭证

八、注意事项

  1. 用户收款流程中必须包含微信官方确认页面
  2. 转账金额限制:
    • 单笔最低多少元
    • 单笔最高根据商户资质有所不同
  3. 商户LOGO和简称需在相应平台设置
  4. 转账备注内容会展示给用户
  5. 提现有手续费

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。