王者战区小程序 · 店铺虚拟支付配置指南

本指南面向店铺商家,用于配置当前店铺的小程序虚拟支付、消息推送、商品道具和积分抵扣。操作前先确认后台选中的店铺,以及该店铺对应的微信小程序。

店铺配置在商家后台完成;微信公众平台和小程序项目配置由该小程序的管理负责人完成,没有对应权限时联系该负责人。微信主体资格、类目、限额、费率、结算周期及 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. 微信公众平台先准备好

登录 微信公众平台,在目标小程序账号完成以下步骤:

  1. 确认该账号具备虚拟支付能力,完成平台要求的开通、审核和签约。
  2. 记录该小程序的 AppID、AppSecret,以及虚拟支付的 OfferID、现网 AppKey。
  3. 为需要现金购买的商品创建道具,并完成发布;记录道具 ID 和价格,微信价格单位为“分”。
  4. 如果需要 iOS 支付,按微信后台要求完成小程序简称及相关支付能力配置。
  5. 配置 request 合法域名,包含店铺后端域名;公共查询、图片上传和素材下载域名按 README 另外配置。

商品信息由我们的商品管理维护,不会因为在微信后台建了道具就自动出现在小程序中。修改售价时需要同步核对两端配置。

建议先用一个售价较低、库存或卡密准备齐全的商品试购,确认支付和发货后再配置其他商品。

3. 商家后台填写当前店铺的支付配置

先选择正确的店铺,再打开“小程序配置 → 基础配置”,在“基础配置”分区填写:

后台字段填写来源用途
AppID目标小程序的 AppID必须与开发者工具导入项目的 AppID 一致
AppSecret同一小程序的 AppSecret用于该店铺的小程序登录和微信接口调用
OfferID微信虚拟支付基本配置现金支付必需
现网 AppKey同一 OfferID 对应的现网密钥现金支付必需

填写后点击“保存基础配置”。OfferID 和 AppKey 在表单中允许选填,方便尚未开通支付的店铺保存基础信息;要使用现金虚拟支付时,两项都必须配置。

已有密钥的输入框留空表示保留旧值。修改 AppID 时必须同时填写新 AppSecret,并核对 OfferID、AppKey 是否也属于新的小程序。

当前店铺使用现网支付配置,请填写现网 AppKey。

4. 生成并配置消息推送

  1. 确保当前店铺的 AppID 和 AppSecret 已保存,表单没有未保存修改。
  2. 切换到“消息推送”分区,选择“数据格式”和“加解密方式”。系统支持 JSON/XML、明文/兼容/安全模式;默认是 JSON、安全模式。
  3. 设置“iOS 退款问询策略”,点击“保存消息推送”。该策略是收到微信退款问询时的默认回应,不代表系统主动发起退款。
  4. 点击“生成配置”,复制系统返回的 URL、Token 和 EncodingAESKey。
  5. 到微信公众平台的“开发管理 → 消息推送”填写这三项,数据格式和加解密方式与商家后台保持一致,然后保存并通过微信校验。

URL 直接完整复制“生成配置”的结果,不自行拼接地址,也不套用其他店铺的地址。Token、EncodingAESKey 的明文仅在生成结果中返回,之后读取只显示配置状态或脱敏信息。

“重新生成”会立即使旧凭据失效,必须同步更新微信后台。若该小程序已有其他消息接收服务,切换入口前需确认原有事件的处理方式。

以微信公众平台保存后的校验结果为准,直接在浏览器打开 URL 不能判断配置是否成功。若后台无法生成 URL,或微信校验始终失败,核对上述配置后联系平台管理方,并提供错误提示或请求编号。

5. 商品与微信道具对应起来

在商家后台编辑商品:

商品字段示例配置要求
道具IDwz_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 一致。

修改 config/communication.js:

const apiBaseUrl = 'https://your-backend.example';
const storeID = 'LLXXXXXXXX';

export { apiBaseUrl, storeID };

以上为占位示例,必须替换:apiBaseUrl 填平台提供的 HTTPS 后端根地址,不附加 /api/v1;storeID 填后台当前店铺的小程序公开店铺编号,不是数据库数字 ID。域名不确定时向平台管理方确认。

按 README 的微信平台配置 设置合法域名。完成配置后在微信开发者工具编译,再用真机预览并登录当前店铺小程序。

当前 iOS 支付要求微信 8.0.68 或以上版本,并具备对应账号支付权限。开发者工具中的模拟结果不能代替真机付款和发货验收。

7. 试购时核对付款和发货

  1. 在小程序打开商品,点击购买。直接出码商品按提示填写系统、地区或选择图片;发送卡密商品不要求填写这些信息。
  2. 在付款确认中核对商品金额、使用积分和实付金额。有实付金额时完成微信付款;全额积分兑换时确认兑换。
  3. 付款后打开订单详情,等待付款确认和商品发货,并在商家后台核对当前店铺的对应订单。
  4. 卡密商品检查卡密是否交付;接口发送卡密商品检查服务卡券链接是否出现。直接出码商品点击“获取二维码”,按页面提示完成扫码授权并查看修改结果。

支付完成和服务完成是两个阶段。发送卡密以卡密或服务卡券交付为发货完成,直接出码以修改成功为业务完成。修改失败不代表订单已自动退款,退款结果以订单显示为准。

已付款但暂未发货时,先刷新已有订单查看结果,并记录订单号;不要直接重复购买。30 分钟未支付的订单会在系统确认未付款后关闭;已付款但显示待支付或关闭异常时,联系平台管理方核查。

8. 常见问题排查

现象先检查什么
下单返回支付服务不可用当前店铺的四项基础配置是否齐全、商品道具ID是否填写;重新登录后仍失败,向平台管理方提供请求编号
拉不起支付或提示道具价格错误道具是否已发布、道具ID是否一致、微信道具原价与商品售价是否一致;同时核对账号支付权限和微信版本
积分抵扣后金额不对商品最多可抵扣比例、用户积分余额及付款确认中选择的积分数量;按 100 积分抵扣 1 元核算
提示登录状态过期或签名不匹配重新登录小程序,从已有待支付订单重试;仍失败时提供订单号及错误提示
微信消息推送保存失败是否完整复制当前店铺生成的 URL、Token、EncodingAESKey,两端数据格式及加解密方式是否一致;仍失败时联系平台管理方
已付款但卡券暂未出现刷新已有订单,在商家后台核对付款和发货状态;提供请求编号和订单号,不直接重复购买
全额积分兑换不出现微信支付面板实付为 0 时属于正常本地结算,检查订单及积分扣减是否成功
小程序网络请求失败通信地址、公开店铺编号、当前店铺状态和微信合法域名;地址是否可用向平台管理方确认

9. 配置后的验收

  •  小程序项目、店铺基础配置和微信公众平台指向同一个 AppID。
  •  微信虚拟支付已开通,道具已发布;本地道具ID和原价与微信一致。
  •  完整复制当前店铺生成的推送配置,两端模式一致,微信配置校验通过。
  •  在当前店铺分别试购不用积分、部分积分和全额积分订单,金额与积分明细一致。
  •  真机现金支付后,商家后台显示付款结果,小程序订单中出现对应发货内容。
  •  取消支付后能从已有订单继续付款,刷新页面不会重复下单。
  •  直接出码商品能获取二维码并展示服务结果;发送卡密商品能查看和复制卡密或服务卡券。

以上项目由店铺负责人在完成配置后实际检查;文档本身不代表微信平台配置或真实扣款验收已完成。

参考