小程序如何开通虚拟支付,立刻变现
文章目录
部分视频或图片暂未收录,已在正文保留提示;需要时可查看原文。查看原文 ↗
最近跟着我做小程序的小伙伴有福咯
你的小程序现在可以立刻开始变现了
如果你还没看过怎么做小程序 看看这篇
就在刚刚,微信官方开放了个人主体的虚拟支付功能
就是你的小程序用户可以在你的小程序里购买高级功能、会员权益或者是数字道具
不用再等有500个用户才能开流量主去变现了
昨天我也是赚到了我的小程序虚拟支付的第一桶金😂
标题图就是 😀
整个流程非常简单,全程不用代码,跟着我手把手教你完成。
话不多说,开整。
先开通虚拟支付。
一、确认个人主体符合条件,再点开通
打开浏览器,登录微信公众平台,进入自己的小程序后台
开通条件有三个:
-
小程序要完成认证和备案
-
类型也要符合要求,服务类目包含“工具”
-
小程主体信息完。个人主体官方条件
在后台核对主体信息、服务类目、认证状态和备案状态。还没完成的,先按对应页面的引导补齐。
左侧找到 “支付与交易 → 虚拟支付”,点击“开通”
然后按页面顺序完成:
-
阅读并同意协议。
-
填个人身份资料、提现账户和支付管理员信息。
-
提交申请,等待后台给出审核结果。
-
审核通过后,按提示扫码签约。
身份信息和提现账户分别在这两块填写。姓名、证件和收款账户按自己的真实资料提交。
因为我的小程序主体是个人 ,所以就上传一下开发者的个人信息就行。
然后这个银行卡信息就是作为提现用的。
最后的补充文件就不用填写了
点击下一步,提交后会先显示“审核中”。等审核通过,这种事机器审核,很快的,过几秒刷新一下就可以了。
刷新后出现了完成和“待签约”,再点待签约。
然后扫码绑定。
扫码后 在手机上完成一下实人认证 就开通成功了。但是还没有到收款这一步。
二、接入支付接口
要到自己的小程序里接入这个支付接口才能收款。
把这个提示词直接发给你智能体,让他在你的小程序里接入。
阅读接入指引,并完成个人主体小程序的虚拟支付接入: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/virtual-payment/person 最后按文末「部署前检查清单」逐项验收。
因为信息变化很快,如果上面的过时,则进入下面链接找到agent自动接入,复制最新提示词即可。
这时候就是考验你智能体的时候了,他在接入支付接口的同时会不会考虑到你的小程序哪些功能适合加入支付呢
因为我的小程序是工具类养老金计算器,所以智能体建议我通过购买计算次数包来付费。
三、怎么创建这个付费次数包呢?
智能体帮你接入后,也建议哪些能做成付费了,如果没有你就让他给你决策一下。
决策后,要创建你的付费了 ,以下统称为道具。这个道具怎么理解呢
比如10次的计算次数,20次AI生成机会,30天会员,一套课程,100个金豆等等,不是实体商品,不需要快递,所以统一叫道具。
首先创建虚拟道具前要可开启服务端口
打开你的微信开发者工具 ,打开你的小程序项目
在设置中-安全设置
把这个服务端口点开
然后创建道具
后台入口是 “支付与交易 → 虚拟支付 → 基本配置 → 道具配置”。
往下找到“开发版本”,点“添加道具”。官方文档把这部分称为“道具管理”,找菜单时按你的实际页面来。
我的商品就是“养老金试算 5 次计算包”,购买以后增加 5 次使用机会。
可以参考按这份内容准备:
| 后台项目 | 本次填写示例 |
|---|---|
| 道具类型 | 普通道具 |
| 道具名称 | 养老金试算 5 次计算包 |
| 关联关系 | 本例为计算功能,选择自定义;按展开后的实际必填项填写 |
| 备注说明 | 1元购买5次计算,这是后台给自己看的备注 |
| 道具图片 | 我这里要求 PNG 或 JPG,200 × 200 像素,小于 200 KB |
| 价格,页面标注“元”时 | 1 |
| 道具 ID | 本例用 pension_credits_5,后续代码和云函数填写相同的值 |
商品图我用了计算器加数字 5,做成后台要求的尺寸后上传。你自己看到的大小和格式限制,以上传框显示为准。
“每成功试算一次消耗一次”这类完整使用说明,还要放在小程序购买页让用户看见,不能只写在后台备注里。
看到价格栏写着“元”,就填 你想填写的价格。
关于价格有一点要注意:安卓结算和苹果结算不一样
| 终端 | 结算周期 |
|---|---|
| Android 等 | T+3 |
| iOS | 约 45-60 天 |
而且 月支付限额 10 万元
抽成也不一样,所以价格设定要多注意哦
| 终端 | 费率 | 说明 |
|---|---|---|
| Android 等 | 1% | 腾讯技术服务费 |
| iOS | 12% | Apple 佣金 |
填好后按页面点“提交审核”,通过后完成发布。注意要把道具发布到线上,才能让你的小程序正确调用到哦。回到“线上版本”列表,核对能看到这个商品,价格为 1 元。刚发布的道具可能还在同步;如果平台明确提示“道具刚创建”,等同步完成再试,不要为此反复更换 ID。官方道具配置说明
下面要给云函数配置环境变量。为什么要创建这个云函数呢?就是为了,让这个云函数知道自己给哪个小程序来支付,一一对应上。
需要7项信息:前 5 项从后台查找,第 6 项是支付总开关,填 true;第 7 项是苹果支付开关 WX_PAY_IOS_ENABLED,后台还没开通苹果 IAP 时先填 false,开通后再改成 true。苹果 IAP 的开通步骤在第七节。
| 信息 | 云函数环境变量名(Key) | 去哪里找或怎么填 |
|---|---|---|
| AppID,小程序编号 | WX_APP_ID | 小程序后台“开发与服务 → 开发管理 → 开发设置” |
| AppSecret,小程序密钥 | WX_APP_SECRET | 同一页面的小程序密钥区域,按管理员验证要求查看或管理 |
| OfferID,虚拟支付账户编号 | WX_PAY_OFFER_ID | “虚拟支付 → 基本配置” |
| 现网 AppKey,支付密钥 | WX_PAY_APP_KEY | “虚拟支付 → 基本配置”,选现网对应的密钥 |
| 道具 ID | WX_PAY_PRODUCT_ID | “虚拟支付 → 基本配置 → 道具配置”,刚创建的商品 |
| 支付总开关 | PENSION_BILLING_ENABLED | 不需要查找,在云函数环境变量中填 true,开启支付功能 |
| 苹果支付开关 | WX_PAY_IOS_ENABLED | 不需要查找,后台未开通苹果 IAP 时填 false;开通后填 true |
不用急,我们一个一个来。
首先我们把前5项后台资料找出来,两个开关的值按上表填写。
AppID和AppSecret在一个地方。
小程序后台-管理-开发管理 就能找到 AppID和AppSecret,AppSecret我这里已经生成了,如果你是第一次会出现生成,然后复制保存,因为生成后就不能再复制了。
OfferID 和现网APPkey在一起。小程序后台-支付与交易-虚拟支付-基本配置-offerID和现网APPkey
道具ID是之前创建并发布的道具,在小程序后台-支付与交易-虚拟支付-基本配置-道具配置-线上版本中的道具id
这几个都找到后上传部署你本地小程序里的 关于billing文件夹,我的是 pension-billing,你要看下智能体给你支付相关的取名叫啥,找不到可以问下智能体。然后在微信开发者工具中的工程文件里找到对应的文件夹,点击右键,出菜单栏-创建并部署。
上传了云函数。
再往里填上面找到的5项资料,以及支付总开关、苹果支付开关,共7项。这时候点击微信开发者工具上面这个小云朵 也就是云开发。
然后就跳出云开发控制台界面。找到云函数-刚才你上传的文件名-版本与配置
再点击配置
点击高级配置
然后点击下面的添加一行,按下面的7个变量名逐行填写。前5项填刚才找到的资料,PENSION_BILLING_ENABLED 填 true,WX_PAY_IOS_ENABLED 在后台未开通苹果 IAP 时先填 false。等后面开通了苹果IAP再回来填true,现在有个印象,后面我还会说到。
| 云函数环境变量名(Key) |
|---|
WX_APP_ID |
WX_APP_SECRET |
WX_PAY_OFFER_ID |
WX_PAY_APP_KEY |
WX_PAY_PRODUCT_ID |
PENSION_BILLING_ENABLED |
WX_PAY_IOS_ENABLED |
商品资料齐了。还需要一个地方替你保存订单、确认付款,再给对应的用户加次数。也就是要存对应的数据,创建对应的数据库。
四、创建保存订单和次数的数据库集合
用户剩几次、买过什么、有没有退款,这些需要创建数据库进行存储。
这个数据库的初始化不用我们自己创建,交给你的智能体就行。
把下面提示词交给你的智能体。
请读取当前小程序项目,判断数据库是否已经有设计,再按对应情况完成初始化,让我上传相关云函数后,在云端执行一次就能创建缺少的数据库资源。
先检查项目规则、已经确认的业务方案、数据库文档、现有初始化或迁移脚本,以及实际数据库读写代码。云端还没有集合,不代表没有设计;代码中已经明确的集合和字段也要作为依据。
情况一:项目已经有数据库设计
沿用已有集合名称、字段、索引、权限和目录约定,只补当前业务所需的缺项。已有初始化方式就复用或完善;有设计但还没有初始化程序的,按原设计生成。部分已设计、部分未完成的,保留已确定部分,补齐缺失部分,不重新设计整套数据库。
如果原方案与代码不一致,列出具体冲突;不能擅自改名、重建集合、迁移数据或覆盖现有规则。
情况二:项目还没有数据库设计
先读取实际页面、功能需求、支付流程、用户权益和现有代码,根据当前业务设计必要的集合、字段类型、记录标识、数据关联、查询索引及读写权限,不预设固定数量或套用教程名称。
把设计依据和最终清单写入项目文档,再据此生成初始化程序,并核对业务代码中的读写名称与设计一致。已有代码有少量相关缺项时,只补必要衔接,保留原有业务规则。
影响设计的必要业务信息确实缺失时,一次列出最少的问题让我补充;信息足够就直接完成设计和文件,不要只交一份方案后停下。
两种情况都按当前项目的命名规则确定初始化函数名称和位置,不能硬套其他项目的名字。
请直接把完整文件写入本地项目,包括入口、依赖清单和必要配置,适配项目实际的云开发环境与运行版本。
要求:
1. 根据实际项目生成待初始化清单。使用官方支持的接口创建缺少的资源,已有集合和数据保留,不删除、不清空、不覆盖。
2. 可以重复运行,不重复写入占位记录、测试用户或订单,也不重置已有用户权益。
3. 逐项返回“已创建、已存在、失败、待配置”和真实依据。部分失败必须计入总结果,不能假报全部完成。
4. 索引和权限依据本次采用的数据库设计及实际查询配置,保留已有符合业务要求的规则,不为了初始化而放开访问。发现支付状态、余额等敏感数据可被普通客户端直接修改时,指出问题和修复方案。
5. 当前已有且已授权的官方工具能完成的权限、索引配置,直接补齐并核验。SDK不支持或缺少权限的,单列待办、准确入口和填写值,不编造接口。
6. 初始化仅允许经验证的管理端调用,不能凭客户端传入的身份字段获得管理权限。密钥和管理凭据不写入代码或日志。
7. 检查首次执行、已有资源、部分失败和重复执行的结果。测试结果与实际云端执行结果分别报告。
交付时单独列出“本次要上传和运行的初始化云函数”:实际文件夹绝对路径、云函数名称、用途、上传部署方式、云端运行入口、调用参数和成功判据,以及尚未完成的配置。明确区分这个初始化函数和项目原有的支付云函数,让我能按名称找到本次要操作的文件。
使用前说明本次执行会创建哪些资源,保留哪些已有资源;不要把“上传成功”当成“初始化成功”。
如果新增了临时初始化入口,验收后给出关闭办法;项目原有且仍需使用的初始化、迁移工具和正式业务云函数应保留。
等智能体执行完上面的提示词,先找到它给出的初始化云函数名称和本地文件夹路径。后面要上传、运行的,就是这次生成或完善的这个函数。我的项目里它叫 pension-init-db。
所以我只要把这个 pension-init-db文件夹上传部署就行。右键选择“创建并部署:云端安装依赖”。云端已经有同名函数时,选择对应的“上传并部署:云端安装依赖”。同上面pension-billing上传部署一样操作。
等工具显示部署成功,再点顶部“云开发”,进入“云函数”列表。按智能体给出的初始化云函数名称找到本次上传的函数,打开它的“云端测试”
把原来的内容填入{},再点运行测试。注意这次执行后,数据库才会在云端创建集合。
看返回结果里每个集合是否显示“已创建”或“已存在”。如果有失败,把失败项和报错交给智能体修好,再重新部署、运行。
成功后的返回全部集合初始化完成。
运行成功后,点云开发控制台左侧的“数据库”,按智能体返回的集合清单逐项核对。刚才创建的集合应该出现在列表里。我的项目创建的是下面这6个集合:
| 集合名称 | 保存什么 |
|---|---|
pension_accounts | 用户剩余次数、是否领过首次免费次数 |
pension_orders | 用户购买计算包的订单 |
pension_payments | 支付记录 |
pension_calculations | 计算结果和扣次数记录 |
pension_refunds | 退款记录 |
pension_events | 付款、退款等通知的处理记录 |
数据库准备好后,微信的付款通知要发送给前面负责收款和加次数的支付云函数。我的项目接收通知的是 pension-billing
五、让支付云函数收到付款通知
在云开发控制台,点击 “设置 → 其他设置”,找到上半部分的“消息推送”,点“添加消息推送”。
先添加付款后的发货通知。消息类型填 event,事件类型填 xpay_goods_deliver_notify,环境选支付云函数所在的环境,接收函数选前面处理支付的那个函数。我这里选的是 pension-billing,你的项目按实际支付云函数名称选择。
这里的“发货”,在我的计算器里就是给用户加上5次计算机会。
同样在添加一个消息推送 ,把退款通知也加上。消息类型还是 event,事件类型换成 xpay_refund_notify,环境和接收函数保持一致。
投诉通知和苹果退款问询也一起添加,消息类型仍填 event,环境和接收函数与前面保持一致。
本例需要核对这四条:
| 消息类型 | 事件类型 | 接收云函数 |
|---|---|---|
event | xpay_goods_deliver_notify | pension-billing |
event | xpay_refund_notify | pension-billing |
event | xpay_complaint_notify | pension-billing |
event | xpay_subscribe_ios_refund_query_notify | pension-billing |
保存后回到列表,看看右侧按钮。如果显示“启用”,还要点一下,配置才会生效。
这张图是我添加完发货和退款通知时截的,当时还没点“启用”。你添加的其他通知也要检查。
我们这里选的是云函数推送模式,接收代码要按官方的 JSON 格式处理。已有 HTTP 回调的项目,让智能体先核对原配置和代码,再决定怎么调整。
苹果退款问询需要云函数在 3秒内按官方格式回复。它用于向苹果提供退款判断依据,收到问询时不能直接按退款成功扣回次数;实际退款结果由退款通知处理。下面的提示词会让智能体一起检查这部分代码。
还有一个容易漏的地方:付款通知偶尔没及时收到时,程序要能主动查订单,确认付过款再补次数。把这段发给智能体,让它核对当前云端配置:
我的支付云函数已上传,7项环境变量已填写,其中WX_PAY_IOS_ENABLED在后台未开通苹果IAP时填false,已开通才填true。数据库集合、索引和消息推送已按部署说明配置。
请读取当前项目和实际云端配置,检查:
1. 前端、云函数、数据库、消息推送是否使用正确且一致的云环境。
2. 核对7项环境变量:WX_APP_ID、WX_APP_SECRET、WX_PAY_OFFER_ID、WX_PAY_APP_KEY、WX_PAY_PRODUCT_ID、PENSION_BILLING_ENABLED、WX_PAY_IOS_ENABLED。确认名称与代码读取一致;PENSION_BILLING_ENABLED为true,WX_PAY_IOS_ENABLED按后台苹果IAP开通状态设置,未开通时为false。核对前端能否据此控制苹果购买入口,只报告缺少哪项或配置问题,不输出密钥。
3. 数据库权限和索引是否满足代码查询;核对xpay_goods_deliver_notify、xpay_refund_notify、xpay_complaint_notify、xpay_subscribe_ios_refund_query_notify这4条消息推送均已添加并启用,接收函数为项目实际的支付云函数。
4. 代码是否按云函数JSON消息格式处理通知,并校验可信来源和订单;普通用户伪造通知不能加次数。苹果退款问询须在3秒内按官方格式回复,不能把退款问询当成退款成功,实际退款通知到达后再按业务规则调整次数。
5. 商品ID、100分金额、购买1包和到账5次是否一致。现网支付请求env=0、推送Env=0、查单结果env_type=1,各字段按官方定义分别校验。
6. 定时查单任务是否已经部署并启用,确认已支付后能否补发,重复查询不能重复加次数。
7. 实际云端Node.js版本与代码、依赖是否兼容。网络请求超时要有明确错误,不能把所有失败都写成“支付状态暂未确认”。
无法读取的项目列为待核对,并告诉我去哪里看。发现代码问题先修复,列出要重新部署的文件;不要把本地检查通过写成云端已验证。
我这次的云函数执行超时设成了60秒,但中途有一次请求失败,是代码用了云端旧版 Node.js 不支持的请求写法。要让智能体检查实际报错,光延长等待时间解决不了这个问题。
如果智能体在检查中改了云函数,就按它列出的函数名称和文件夹路径,在开发者工具里更新部署。这次这套流程就全部完成了,下面我们来测试一下。
六、付1元,看看5次有没有到账
回到微信开发者工具,点顶部“编译”,打开小程序购买页。没有出现购买入口的话,让智能体检查前端支付开关和页面调用。
开发阶段就能测试真实付款。这次我们用的是现网 AppKey、已经发布的道具,支付请求里的 env=0;这些参数让智能体核对。小程序还在开发版,也可以走现网付款。
我是在开发者工具里点“1元购买5次”
这时会出现支付测试二维码。按窗口要求,用开发者本人的微信扫码,核对商品名称和1元金额,再确认付款。
如果你的工具没有出现这个窗口,可以点顶部“预览”,用有该项目开发权限的微信扫码,在手机里打开小程序再购买。先用已经开通的支付渠道测试;苹果端需要先完成 IAP 接入。这个我们一会另讲。
付款后,我这里显示“购买成功,5次计算已到账”,订单状态变成“已到账”,此订单剩余5次。
这样这个支付流程就完美结束。当然以上默认的是安卓才能支付,下面还有苹果支付。
七、苹果支付
1.先设置“小程序简称”
为啥要设置 简称呢?因为 苹果付款界面需要显示一个名称,让用户知道自己在给哪个小程序付款,微信要求先配置“小程序简称”来满足这个展示要求。
登录微信公众平台,进入:
管理 → 账号设置 → 基本设置 → 小程序简称-修改
按页面要求填写、提交。这个简称会显示在苹果付款界面上。需要等个半小时就通过审核了。
2.开通苹果 IAP 支付
进入:支付与交易 → 虚拟支付 → 基本配置 → 苹果 IAP 支付
点开,需要有小程序简称
3.把前面填的苹果支付开关改成 true
等后台确认苹果 IAP 已开通,再回到微信开发者工具,进入 云开发 → 云函数 → 你的支付云函数 → 版本与配置 → 配置 → 高级配置 → 环境变量。我这里的支付云函数是 pension-billing。
找到前面已经添加的 WX_PAY_IOS_ENABLED,把值从 false 改为 true,保存配置。如果前面已经确认开通并填了 true,这里核对即可。
重新打开小程序,用 iPhone 测试付款和次数到账。
至此,苹果支付也通了。
现在你的小程序已经具备了收款能力,当然要赚更多的钱,就要有更多的用户为你的服务付费,所以打磨好你自己的小程序才是最重要的事。
好了 ,以上就是今天的全部内容。祝兄弟们财源滚滚啊
我是宋宋,持续分享干货。X:@songsong

























