App 接入地址(保持卡密通兼容协议)
测试完成后把 App 内 VipConfig.VERIFY_URL 指向上面的地址即可,解析逻辑无需改动;
该常量留空时会回退到卡密通官方地址,出问题改回一行即可复原。
最近校验
批量生卡
生成层级:商品类型 → 商品 → 卡类。卡类就是有效期类型(终身 / 年 / 季 / 月 / 周 / 天, 天数可以自己填,0 表示终身);同一个商品可以同时卖月卡和年卡,所以卡类在最后一步选。 生卡必须定价:填「本批定价」,或先给所选卡类 / 商品定价(下面那行「改价」可以直接改)。 三级都是 0 就不让生成——免得生出一批只能卖 ¥0.00 的卡。
卡密格式 RB-XXXX-XXXX-XXXX-XXXX,最后一位为校验位,可挡住人工录入时的输错。
定价优先级:本批定价 → 卡类价 → 商品价(三级都为 0 时不允许生卡)。
在这里填了价,这批卡就按这个价卖(同一商品可以分批卖不同价,买家下单页显示的就是本批价);
改卡类/商品价只影响「在库且自己没定价」的卡,已售出的卡保留成交价。
本次生成结果
批次记录
软件登记
这里登记「应用标识」和它对应的软件名,是平台里的唯一权威来源:
建商品类型、生卡、改归属、校验模拟的下拉都从这里取,选着填就不会打错。
标识必须与 App 请求里带的 app 参数完全一致(房租单 App 是 rfbill)。
标识不可修改(它已经写在卡上了,改标识会让那些卡对不上号);只能改名称/备注、停用、或删除登记。
停用/删除都不影响已生成的卡——归属判定是字符串比较,与这张表无关。
已被类型/卡/批次引用的标识只能停用,不能删。
商品类型
停用后:该类型下的商品不再出现在「生卡」页与买家自助下单页;已经生成、卖出去的卡密不受影响。
只有当类型下已经没有任何商品时才允许删除。
「应用」是给多个软件共用这套发卡平台时用的:填了标识(如 rfbill),这个类型下生成的卡
只有同名应用的请求才能激活,下单页也只对该应用列出这些套餐;留空 = 不限,任何软件都能用。
改「应用」只影响以后生成的卡,已在库/已卖出的卡保持原归属。
商品
停用后不再出现在「生卡」页与自助下单页。 已被卡密或批次引用过的商品只能停用、不能删除——删掉会牵连已经卖出去那些卡的历史记录。
卡类
停用后不能再生成这种卡、也不再出现在自助下单页;已经发出去的卡照旧能激活使用。 已被卡密或批次引用过的卡类同样只能停用。
自动补卡(最低库存保障)
给「商品 × 卡类」设一条规则:可售库存低于最低库存时,系统自动生成
每次补货张卡,并记在「生卡 - 批次记录」里(备注写「自动补卡」)。
服务每 5 分钟巡检一次,买家每次下单后也会立刻检查一次——一轮抢购不会把库存买空。
补出来的卡同样遵守「生卡必须定价」:用规则里的定价,留空则用卡类价 → 商品价,三者都是 0 就跳过并提示。
「设为不上架」:这张卡不再出现在自助购买页、也不会被自助下单买走, 但它仍是「未使用」的卡,能正常激活(适合线下已承诺、赠品、内部留卡)。 「禁用」是另一回事:禁用后连激活都不允许。
校验模拟(直接调用 App 使用的接口)
这里的「应用」就是 App 请求里带的 app 参数:填 rfbill 等于模拟房租单 App 来激活。
留空则模拟不带 app 的请求(只看通用卡)。归属不匹配时接口一律返回「卡密不存在」,下方会给出诊断。
等待请求…
买家自助下单页:/shop/(不需要口令,把这个链接发给客户即可)。
客户下单后卡密会被预留、别人买不走;你收到钱之后再点「确认收款并发卡」,卡密立刻可用并自动写入库存台账(客户、渠道、售价、订单号)。
预留超过 24 小时的订单会自动释放卡密,你确认时若预留已过期,系统会按当前库存重新占用。
用前要配两样东西:收款码图片放到 web/shop/ 下、文件名以 pay 开头即可
(按 pay.png → pay.jpg → pay.jpeg → pay.webp 的顺序取第一个存在的,会跟着部署包一起上线);
卖家联系方式用环境变量 SENDER_SELLER_CONTACT 配置(服务器上写进 /opt/sender/.env 再重启服务,
systemd 已用 EnvironmentFile 读取该文件)。
按商品类型统计
按商品统计
按卡类统计
按渠道统计
登记售出
售出只是记账,不会改变卡密能否激活——已售出但用户还没激活的卡,仍然可以正常激活; 卡片状态(未使用/已使用/已禁用)在「卡密管理」里维护。