首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >最新版本微信小程序提现|微信商户账户提现功能使用指南[uniapp可用]

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

作者头像
肥晨
发布2025-07-08 19:35:44
发布2025-07-08 19:35:44
76900
代码可运行
举报
文章被收录于专栏:农民工前端农民工前端
运行总次数:0
代码可运行

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

一、产品概述

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

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

主要特点

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

二、功能接入流程

1. 开通商家转账功能

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

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

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

三、发起转账实现

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

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

一、转账功能整体流程

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

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

二、前端实现详细解析

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

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

关键参数说明

  • memberId:商户系统内的用户唯一标识
  • type:区分不同类型的转账业务
  • amount:转账金额(单位:元)
  • name:当金额>2000元时必须提供,用于实名验证
2. 调用后端API准备转账
代码语言:javascript
代码运行次数:0
运行
复制
  // 调用后端API准备转账参数
  putPcsOrderAPI(params)
    .then((res) => {
      // 获取微信支付参数
      jsWApiParams({
        packageParam: res.v,
      })

后端处理逻辑

  1. 验证商户余额是否充足
  2. 生成商户内部转账单号
  3. 按照微信规范准备签名数据
  4. 返回包含加密信息的package
3. 调用微信转账接口
代码语言:javascript
代码运行次数:0
运行
复制
      .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:包含转账详情的加密数据包

效果展示:

完整代码:

代码语言:javascript
代码运行次数:0
运行
复制
const putPcsOrder = () => {
  putPcsOrderAPI({
    memberId: memberStore.profile.id,
    type: ,
    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. 兼容性处理
代码语言:javascript
代码运行次数:0
运行
复制
        } else {
          // 微信版本过低处理
          wx.showModal({
            content: "你的微信版本过低,请更新至最新版本。",
            showCancel: false,
          });
        }
      });
    })
    .catch((err) => {
      // API调用错误处理
      console.log(err);
    });
};

三、后端关键处理逻辑

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

1. 生成预转账订单
代码语言:javascript
代码运行次数:0
运行
复制
// 伪代码示例
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 * , // 转为分
    desc: params.comment,
    ...
  };
  
  // 5. 生成签名
  wechatParams.sign = generateSign(wechatParams);
  
  // 6. 返回加密后的package
  return {
    v: encryptPackage(wechatParams)
  };
}
2. 安全校验要点
  1. IP白名单:必须在微信商户平台配置合法IP
  2. 频率限制:防止高频转账攻击
  3. 金额校验:单笔和日累计限额检查
  4. 实名验证:大额转账强制实名校验

四、不同场景的转账实现

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

1. 营销活动转账
代码语言:javascript
代码运行次数:0
运行
复制
// 需要额外传入场景信息
const params = {
  ...baseParams,
  scene: 'MARKETING', // 营销场景
  sceneInfo: {
    activityName: '新用户注册奖励',
    rewardDesc: '首次注册赠送'
  }
};
2. 佣金报酬转账
代码语言:javascript
代码运行次数:0
运行
复制
const params = {
  ...baseParams,
  scene: 'COMMISSION', // 佣金场景
  sceneInfo: {
    positionType: '销售代表',
    rewardDesc: '2023年Q3销售提成'
  },
  userPerception: '劳务报酬' // 用户看到的收款原因
};
3. 企业赔付转账
代码语言:javascript
代码运行次数:0
运行
复制
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. 提现有手续费
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 农民工前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微信商户账户提现功能使用指南
    • 一、产品概述
    • 二、功能接入流程
    • 三、发起转账实现
  • 微信商家转账功能实现详解
    • 一、转账功能整体流程
    • 二、前端实现详细解析
    • 三、后端关键处理逻辑
    • 四、不同场景的转账实现
    • 五、错误处理与调试
    • 六、安全注意事项
    • 七、转账后操作
    • 八、注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档