✅ 微信小程序虚拟支付完整接入步骤
> ⚠️ 仅限微信小程序;公众号、H5、网页商城无法接入;专门售卖会员、课程、数字权益等虚拟商品,解决iOS端虚拟商品支付违规下架问题。
一、开通前置条件
- 小程序主体:企业/个体工商户(推荐),已完成微信认证;个人主体仅工具类目可开通,有月限额10万,不适合商城大量售卖课程会员
- 小程序服务类目匹配:教育(在线课程)、文娱、工具、社交等;类目不对后台看不到虚拟支付入口
- 主体无严重违规处罚记录
- 准备材料:营业执照、法人身份证、提现银行卡(个体户法人卡,企业对公卡)、支付管理员信息
二、MP后台开通虚拟支付(mp.weixin.qq.com)
- 登录小程序管理后台 → 左侧菜单【支付与交易】→【虚拟支付】
- 点击【开通】,阅读并勾选签署《虚拟支付服务协议》
- 提交主体资料、银行卡、管理员信息;非法人管理员需要账户打款验证,法人管理员可跳过
- 管理员微信扫码完成签约
- 等待审核:1~7个工作日,审核结果在页面查看;审核通过自动生成虚拟支付二级商户号(独立于普通微信支付商户号)
三、后台基础配置(非常关键)
- 基础配置:记录核心参数
AppID、OfferId、沙箱AppKey、现网AppKey;如果需要iOS下单,开启苹果IAP支付,填写小程序简称 - 道具管理:新增虚拟商品(会员、课程套餐),设置商品名称、售价,生成OfferId道具ID,保存并发布;商城系统下单时要绑定这个ID
> 代币配置:可选,如果做平台充值代币才配置,代币兑换比例一旦上线不可修改;直接卖课程会员可跳过代币
- 消息推送回调地址:填写你的商城服务端公网可访问URL。微信支付成功后推送订单回调,用来自动发放会员/课程权益,必须配置
四、前后端技术对接(开发联调)
- 沙箱环境优先测试:先用沙箱AppKey,完整测试下单、支付、回调、退款,没问题再切换生产环境
- 小程序前端代码:调用官方API
wx.requestVirtualPayment(),传入道具OfferId、商户订单号、签名,拉起虚拟支付收银台 - 后端核心逻辑
- 生成两套签名:
pay_sig(支付签名)、signature(用户态签名),虚拟支付签名规则和普通微信支付不一样 - 接收微信异步回调通知,校验签名,校验通过后给用户发放虚拟权益,调用微信发货确认接口
- 实现订单管理、退款、对账能力
- 全流程测试通过后,切换为现网AppKey,提交小程序版本发布上线
五、上线规则与避坑要点
- 混合型商城(实物+虚拟商品):两套支付分开。实物走普通微信支付;会员课程等虚拟商品必须走虚拟支付,不能合并一笔订单支付,否则违规下架
- 资金结算:安卓订单T+3;iOS订单账期45~60天,iOS退款只能由用户在App Store发起,商家无法主动退款
- 费率:安卓当前1%;iOS为12%苹果佣金(政策会变动,以签约页为准)
- 商品限制:iOS商品最低售价1元
六、SAAS商城 vs 自研商城
- SAAS小程序商城:先确认服务商是否支持虚拟支付,很多老商城系统只支持普通微信支付,无法对接虚拟支付
- 自研商城:后端开发对接虚拟支付服务端API,前端调用
wx.requestVirtualPayment



