环境
每笔交易、每个订阅、每个事件都带有 environment。它们各自值多少钱,由你的后端决定。
| 环境 | 来源 | 应当视为 |
|---|---|---|
production |
App Store、Google Play、Stripe 正式模式、真实广告网络中的真实购买 | 收入 |
sandbox |
App Store 沙盒和 TestFlight、Google 测试购买(许可测试人员)、Stripe 测试模式(sk_test_ 密钥) |
不算收入。App 审核走的是沙盒,所以不要一律拒绝 |
test |
Kasskeep 测试商店和测试广告 | 不算收入。正式环境中绝不能发放真实价值 |
各渠道如何判定
Section titled “各渠道如何判定”- Apple:看签名交易本身。
apple_environment设为production(默认值)时,App 同时接受正式和沙盒交易,并分开存储;设为sandbox时只接受沙盒交易。 - Google:带
testPurchase(订阅)或testPurchaseContext(一次性商品)的购买记为sandbox。 - Stripe:看私钥前缀。
sk_test_表示sandbox,sk_live_表示production。如果回调的livemode与密钥不一致,会以400 livemode_mismatch拒绝。测试密钥和正式密钥请分别用两个 Kasskeep App。 - 测试商店和测试广告:始终是
test,并带platform: "test"。
GET /v1/customers/:app_user_id?environment=production 只返回正式环境的记录。不带这个参数时返回所有环境,每条记录都有自己的 environment 字段。
交易在每个环境内唯一,所以沙盒购买永远不会覆盖正式购买。