王者战区小程序 · 店铺虚拟支付配置指南
本指南面向店铺商家,用于配置当前店铺的小程序虚拟支付、消息推送、商品道具和积分抵扣。操作前先确认后台选中的店铺,以及该店铺对应的微信小程序。
店铺配置在商家后台完成;微信公众平台和小程序项目配置由该小程序的管理负责人完成,没有对应权限时联系该负责人。微信主体资格、类目、限额、费率、结算周期及 iOS 开通条件,以该小程序在微信公众平台的实际权限和官方最新说明为准。
1. 配置分别放在哪里
| 配置位置 | 需要配置的内容 |
|---|---|
| 微信公众平台 → 虚拟支付 | 开通与签约、OfferID、现网 AppKey、道具 ID 和已发布价格;按需开通 iOS 支付 |
| 商家后台 → 当前店铺 → 小程序配置 → 基础配置 | AppID、AppSecret、OfferID、现网 AppKey |
| 同一页面的“消息推送”分区 | 数据格式、加解密方式、iOS 退款问询策略;生成 URL、Token、EncodingAESKey |
| 微信公众平台 → 开发管理 → 消息推送 | 填入系统生成的推送凭据,使用与商家后台一致的数据格式和加解密方式 |
| 商家后台 → 当前店铺 → 商品管理 | 道具ID、售价、商品类型和发货设置、最多可抵扣比例、支付赠送积分 |
| 小程序项目 | project.config.json 的 AppID、config/communication.js 的后端根地址和公开店铺编号 |
AppSecret、AppKey 只填写在当前店铺的后台表单中;消息推送的 Token、EncodingAESKey 只复制到对应微信后台。不要将这些密钥放入小程序代码或 Git 仓库。
2. 微信公众平台先准备好
登录 微信公众平台,在目标小程序账号完成以下步骤:
- 确认该账号具备虚拟支付能力,完成平台要求的开通、审核和签约。
- 记录该小程序的 AppID、AppSecret,以及虚拟支付的 OfferID、现网 AppKey。
- 为需要现金购买的商品创建道具,并完成发布;记录道具 ID 和价格,微信价格单位为“分”。
- 如果需要 iOS 支付,按微信后台要求完成小程序简称及相关支付能力配置。
- 配置 request 合法域名,包含店铺后端域名;公共查询、图片上传和素材下载域名按 README 另外配置。
商品信息由我们的商品管理维护,不会因为在微信后台建了道具就自动出现在小程序中。修改售价时需要同步核对两端配置。
建议先用一个售价较低、库存或卡密准备齐全的商品试购,确认支付和发货后再配置其他商品。
3. 商家后台填写当前店铺的支付配置
先选择正确的店铺,再打开“小程序配置 → 基础配置”,在“基础配置”分区填写:
| 后台字段 | 填写来源 | 用途 |
|---|---|---|
| AppID | 目标小程序的 AppID | 必须与开发者工具导入项目的 AppID 一致 |
| AppSecret | 同一小程序的 AppSecret | 用于该店铺的小程序登录和微信接口调用 |
| OfferID | 微信虚拟支付基本配置 | 现金支付必需 |
| 现网 AppKey | 同一 OfferID 对应的现网密钥 | 现金支付必需 |
填写后点击“保存基础配置”。OfferID 和 AppKey 在表单中允许选填,方便尚未开通支付的店铺保存基础信息;要使用现金虚拟支付时,两项都必须配置。
已有密钥的输入框留空表示保留旧值。修改 AppID 时必须同时填写新 AppSecret,并核对 OfferID、AppKey 是否也属于新的小程序。
当前店铺使用现网支付配置,请填写现网 AppKey。
4. 生成并配置消息推送
- 确保当前店铺的 AppID 和 AppSecret 已保存,表单没有未保存修改。
- 切换到“消息推送”分区,选择“数据格式”和“加解密方式”。系统支持 JSON/XML、明文/兼容/安全模式;默认是 JSON、安全模式。
- 设置“iOS 退款问询策略”,点击“保存消息推送”。该策略是收到微信退款问询时的默认回应,不代表系统主动发起退款。
- 点击“生成配置”,复制系统返回的 URL、Token 和 EncodingAESKey。
- 到微信公众平台的“开发管理 → 消息推送”填写这三项,数据格式和加解密方式与商家后台保持一致,然后保存并通过微信校验。
URL 直接完整复制“生成配置”的结果,不自行拼接地址,也不套用其他店铺的地址。Token、EncodingAESKey 的明文仅在生成结果中返回,之后读取只显示配置状态或脱敏信息。
“重新生成”会立即使旧凭据失效,必须同步更新微信后台。若该小程序已有其他消息接收服务,切换入口前需确认原有事件的处理方式。
以微信公众平台保存后的校验结果为准,直接在浏览器打开 URL 不能判断配置是否成功。若后台无法生成 URL,或微信校验始终失败,核对上述配置后联系平台管理方,并提供错误提示或请求编号。
5. 商品与微信道具对应起来
在商家后台编辑商品:
| 商品字段 | 示例 | 配置要求 |
|---|---|---|
| 道具ID | wz_service_01 | 与微信已发布道具的 ID 完全一致 |
| 售价(元) | 5.00 | 与微信道具原价一致;微信价格 500 分对应后台 5.00 元 |
| 商品类型、对接接口、发货类型 | 按实际业务选择 | 决定支付后的履约方式,与微信道具 ID 是独立配置 |
| 最多可抵扣比例 | 40% | 填整数 40,系统显示 %;限制积分使用上限 |
| 支付赠送积分 | 20 | 按件配置,0 表示不赠送;全额积分兑换不赠送付款奖励积分 |
| 状态、库存或卡密 | 上架且可购买 | 普通商品准备库存,卡密商品准备可发放卡密;战区定位接口商品选择正确的对接接口和发货类型 |
道具ID虽然在商品表单中是选填,但当前现金支付要求它非空。ID 的可用字符及长度须符合微信平台要求,不要把本地输入框的最大长度当成微信平台限制。
“道具ID”填写微信道具 ID,不能用商品列表中的本地商品编号代替。
积分抵扣规则
固定兑换比例:100 积分抵扣 1 元,也就是 1 积分抵扣 1 分。积分按整数使用,不要求整百,也不设置最低使用数量。
0%:不可使用积分。1%至100%:最多抵扣对应比例,用户可少用或不用。- 默认使用可用余额和商品上限中较小的积分数量;手动输入
0代表不使用积分。 - 用户在付款确认时可调整积分数量,系统按商品上限和用户余额计算实付金额。
单件商品示例:
| 项目 | 数值 |
|---|---|
| 商品原价 | 5.00 元,即 500 分 |
| 最多可抵扣比例 | 40%,最多使用 200 积分 |
| 用户可用积分 | 123 积分 |
| 默认使用积分 | 123 积分,抵扣 1.23 元 |
| 微信实付 | 3.77 元,即 377 分 |
微信已发布道具的原价仍为 500 分,不因为积分抵扣而改价;折后金额由系统计算,无需商家为每种积分用量单独创建道具。
比例为 100% 且余额足够时,用户可以全额积分兑换,实付为 0,不会弹出微信支付面板。仍需核对订单是否生成、积分是否正确扣减、商品是否发货。
6. 小程序端配置
核对 project.config.json 中的 appid,必须与当前店铺后台 AppID 一致。
const apiBaseUrl = 'https://your-backend.example';
const storeID = 'LLXXXXXXXX';
export { apiBaseUrl, storeID };
以上为占位示例,必须替换:apiBaseUrl 填平台提供的 HTTPS 后端根地址,不附加 /api/v1;storeID 填后台当前店铺的小程序公开店铺编号,不是数据库数字 ID。域名不确定时向平台管理方确认。
按 README 的微信平台配置 设置合法域名。完成配置后在微信开发者工具编译,再用真机预览并登录当前店铺小程序。
当前 iOS 支付要求微信 8.0.68 或以上版本,并具备对应账号支付权限。开发者工具中的模拟结果不能代替真机付款和发货验收。
7. 试购时核对付款和发货
- 在小程序打开商品,点击购买。直接出码商品按提示填写系统、地区或选择图片;发送卡密商品不要求填写这些信息。
- 在付款确认中核对商品金额、使用积分和实付金额。有实付金额时完成微信付款;全额积分兑换时确认兑换。
- 付款后打开订单详情,等待付款确认和商品发货,并在商家后台核对当前店铺的对应订单。
- 卡密商品检查卡密是否交付;接口发送卡密商品检查服务卡券链接是否出现。直接出码商品点击“获取二维码”,按页面提示完成扫码授权并查看修改结果。
支付完成和服务完成是两个阶段。发送卡密以卡密或服务卡券交付为发货完成,直接出码以修改成功为业务完成。修改失败不代表订单已自动退款,退款结果以订单显示为准。
已付款但暂未发货时,先刷新已有订单查看结果,并记录订单号;不要直接重复购买。30 分钟未支付的订单会在系统确认未付款后关闭;已付款但显示待支付或关闭异常时,联系平台管理方核查。
8. 常见问题排查
| 现象 | 先检查什么 |
|---|---|
| 下单返回支付服务不可用 | 当前店铺的四项基础配置是否齐全、商品道具ID是否填写;重新登录后仍失败,向平台管理方提供请求编号 |
| 拉不起支付或提示道具价格错误 | 道具是否已发布、道具ID是否一致、微信道具原价与商品售价是否一致;同时核对账号支付权限和微信版本 |
| 积分抵扣后金额不对 | 商品最多可抵扣比例、用户积分余额及付款确认中选择的积分数量;按 100 积分抵扣 1 元核算 |
| 提示登录状态过期或签名不匹配 | 重新登录小程序,从已有待支付订单重试;仍失败时提供订单号及错误提示 |
| 微信消息推送保存失败 | 是否完整复制当前店铺生成的 URL、Token、EncodingAESKey,两端数据格式及加解密方式是否一致;仍失败时联系平台管理方 |
| 已付款但卡券暂未出现 | 刷新已有订单,在商家后台核对付款和发货状态;提供请求编号和订单号,不直接重复购买 |
| 全额积分兑换不出现微信支付面板 | 实付为 0 时属于正常本地结算,检查订单及积分扣减是否成功 |
| 小程序网络请求失败 | 通信地址、公开店铺编号、当前店铺状态和微信合法域名;地址是否可用向平台管理方确认 |
9. 配置后的验收
- 小程序项目、店铺基础配置和微信公众平台指向同一个 AppID。
- 微信虚拟支付已开通,道具已发布;本地道具ID和原价与微信一致。
- 完整复制当前店铺生成的推送配置,两端模式一致,微信配置校验通过。
- 在当前店铺分别试购不用积分、部分积分和全额积分订单,金额与积分明细一致。
- 真机现金支付后,商家后台显示付款结果,小程序订单中出现对应发货内容。
- 取消支付后能从已有订单继续付款,刷新页面不会重复下单。
- 直接出码商品能获取二维码并展示服务结果;发送卡密商品能查看和复制卡密或服务卡券。
以上项目由店铺负责人在完成配置后实际检查;文档本身不代表微信平台配置或真实扣款验收已完成。