最新版本微信小程序提现|微信商户账户提现功能使用指南[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
主要特点:
- 资金实时到账,转账成功后不可退回
- 用户需在微信官方页面确认收款方式
- 支持多种转账场景配置
- 提供安全防护和系统诊断服务
二、功能接入流程
1. 开通商家转账功能
商户需按以下步骤开通权限:
- 登录商户平台申请开通产品权限
- 按照开发指引进行系统开发接入
2. 资金充值
在商户平台完成资金充值后,方可发起转账操作。(是一个单独的账户,需要自己先充值进去测试一下)
三、发起转账实现
注:该功能暂时在微信开发工具上无法测试,只能通过真机测试。
微信商家转账功能实现详解
一、转账功能整体流程
微信商家转账功能的完整实现流程可分为以下几个步骤:
- 商户系统准备:开通权限、配置基本信息
- 前端准备转账数据:收集必要参数并验证
- 后端生成预转账订单:准备签名和加密数据
- 调用微信转账API:实际发起转账请求
- 处理转账结果:成功/失败回调处理
二、前端实现详细解析
以下是对前端代码的逐部分解析:
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, })
后端处理逻辑:
- 验证商户余额是否充足
- 生成商户内部转账单号
- 按照微信规范准备签名数据
- 返回包含加密信息的
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
:发起转账的公众号/小程序IDpackage
:包含转账详情的加密数据包
效果展示:
完整代码:
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. 安全校验要点
- IP白名单:必须在微信商户平台配置合法IP
- 频率限制:防止高频转账攻击
- 金额校验:单笔和日累计限额检查
- 实名验证:大额转账强制实名校验
四、不同场景的转账实现
根据业务场景不同,转账实现有所差异:
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: \'商家赔付\'};
五、错误处理与调试
常见错误码处理
- 余额不足:提示用户或跳转充值
- 实名校验失败:提示用户检查姓名
- 频率限制:稍后重试或联系客服
- 参数错误:检查必填字段
调试建议
- 使用微信支付沙箱环境测试
- 记录完整的请求和响应数据
- 关注微信商户平台的告警信息
- 使用微信支付日志查询工具
六、安全注意事项
- 转账API必须部署在服务端,避免前端直接调用
- 敏感数据如金额、用户信息必须二次确认
- 实现转账结果异步通知机制
- 定期审计转账记录,设置异常监控
通过以上详细实现方案,商户可以安全、稳定地集成微信商家转账功能,满足各种业务场景下的资金发放需求。
关键配置项
-
IP地址配置:需在商户平台设置接口安全IP
-
转账场景配置:
- 在商户平台-产品中心-商家转账-产品设置获取场景ID
- 根据实际业务选择场景(如现金营销、企业赔付等)
- 可自定义用户收款感知内容
-
背景信息报备:
- 需根据转账场景填写对应的信息类型和内容
- 例如现金营销需填写活动名称和奖励说明
-
实名校验:
- 转账金额>2000元时必须校验用户实名
- 0.3-2000元之间可自主选择是否校验
- <0.3元不支持实名校验
七、转账后操作
-
查询转账记录:
- 可通过API查询30天内的转账单
- 支持按商户单号或微信转账单号查询
-
获取转账账单:
- 商户平台-交易中心-资金账单
- 次日10点后可下载前一天账单
-
申请电子回单:
- 转账成功的6个月内可申请
- 用于审计和报税凭证
八、注意事项
- 用户收款流程中必须包含微信官方确认页面
- 转账金额限制:
- 单笔最低多少元
- 单笔最高根据商户资质有所不同
- 商户LOGO和简称需在相应平台设置
- 转账备注内容会展示给用户
- 提现有手续费
您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。