✅ 微信小程序虚拟支付开通完整流程(企业/个体户,商城卖课程会员)
> ⚠️ 仅支持小程序;公众号、H5、网页商城无法接入虚拟支付。
一、开通前置条件(必须全部满足)
- 小程序主体:企业/个体工商户,已完成微信认证
- 小程序服务类目匹配:文娱、在线教育、工具、社交等(卖课程会员选【教育-在线课程】/文娱,类目不对后台不会出现虚拟支付入口)
- 主体信息完整,无严重违规处罚记录
- 准备资料:营业执照、法人身份证、提现银行卡(个体户法人卡/企业对公卡)、支付管理员信息
> 补充:个人主体小程序目前仅工具类目可开通虚拟支付,有月限额10万限制,不适合商城大量售卖课程会员。
二、MP后台线上开通(mp.weixin.qq.com)
- 登录小程序管理后台 → 左侧菜单【支付与交易】→【虚拟支付】
- 点击【开通】,阅读并勾选签署《虚拟支付服务协议》
- 提交主体资料:营业执照、法人身份证、提现银行卡、支付管理员信息
- 账户验证:如果管理员不是法人,需要额外账户打款验证;法人管理员可跳过
- 管理员微信扫码完成签约
- 等待平台审核:1~7个工作日,审核结果在当前页面查看,通过后自动生成虚拟支付二级商户号
三、开通后后台基础配置(非常关键)
- 基础配置:记录核心参数
AppID、OfferId、沙箱AppKey、现网AppKey,交付后端开发;需要iOS支付,在这里开启苹果IAP支付并填写小程序简称 - 代币配置(可选):如果做充值代币,设置兑换比例;比例一旦上线不可修改,不做代币可以跳过,直接用道具模式卖课程会员
- 道具管理:添加你的虚拟商品(会员、课程套餐),生成OfferId道具ID,商城后台要绑定这个ID,下单时调用
- 消息推送回调地址:填写你的商城服务端公网回调URL,微信支付成功会推送订单消息,用来自动发会员、发课程权益;回调地址必须可外网访问,否则无法自动发货
四、技术对接(商城系统联调)
- 先用沙箱AppKey做测试下单、支付、回调、退款全流程测试,不要直接上生产环境
- 小程序前端调用API:
wx.requestVirtualPayment()拉起虚拟支付收银台,传入道具OfferId、订单号、签名 - 后端逻辑:生成支付签名、用户态签名;接收微信异步回调,校验签名,发放虚拟权益,调用微信发货确认接口
- 测试全部链路没问题,切换成现网AppKey,发布小程序版本上线
五、上线前检查清单
- ✅ 虚拟支付状态:已签约、审核通过
- ✅ 道具商品已发布,拿到道具OfferId
- ✅ 回调地址配置完成,能正常接收支付回调
- ✅ 沙箱测试:下单、支付、自动发货、退款全部正常
- ✅ iOS支付开关已开启(需要苹果端售卖)
⚠️ 高频踩坑提醒
- 虚拟支付是独立商户号,和普通微信支付商户号相互独立,不能混用;虚拟商品(会员/课程)不能走普通微信支付,会被小程序下架
- 实物商品仍然走普通微信支付,一套商城两套支付分开
- iOS订单账期很长,苹果佣金12%,退款由用户在App Store发起,商家不能主动退款
- 找不到虚拟支付入口:大概率是小程序服务类目不对,先去小程序后台修改服务类目



