方案与付款
方案默认关闭,关闭时服务器不做任何限制。方案需要账号模式。在 /admin 的方案与付款下开启方案与限制,再到方案设置每个方案允许的内容:
- 每个群组的收据照片与每个群组的周期性支出;
- 一个账号加入的群组(不论是谁创建的),以及每个群组的人数;
- 共享方案的群组:一个账号能让多少个群组使用自己的方案;
- 付款提醒:群组里的人能不能用通知提醒欠款的人。通过其他 App 分享提醒消息永远免费;方案关闭时,每个人都能发送通知提醒。
限制留空表示不限。恰好一个方案是默认方案,应用在没有其他方案的每个账号上。账号有多个方案时,使用优先级最高的那个。
记账本身永远免费:支出、分账、结清、统计、CSV 导出、推送与实时更新都不受限制。新的限制只会挡下之后添加的内容,方案结束时也不会删除任何东西。
群组的限制来自把方案共享给它的成员,只要对方仍是成员、方案仍有效。否则就使用默认方案。Settle Up 导入的人数若超过默认方案允许的上限,从一开始就会应用导入者的方案。
- 把 Ko-fi 页面设为你的
https://ko-fi.com/...网址。 - 在 Ko-fi 的 webhook 设置中,把网址填为
<公开网址>/api/v1/webhooks/kofi。/admin会显示确切的网址。公开网址必须是https://。 - 把 Ko-fi 的验证令牌复制到 Ko-fi 验证令牌。设置之前,webhook 一律返回 404。
- 在你的 Ko-fi 商店中,为每种销售的期限添加一个商品,例如 90 天与 360 天。
- 在方案下,为每个商店商品添加一个付款方式为 Ko-fi 的商品。它的商店商品代码是商品链接的最后一段
ko-fi.com/s/<代码>,天数则是这个商品的有效天数。一次买多个同样的商品时,每个都会加上它的天数。 - 若也要接受打赏,请添加一个没有商店商品代码的商品。它对应金额至少达到它、币种相同的打赏;有多个时,以打赏金额能达到的最高门槛为准。
付款时,付款人在你的 Ko-fi 页面购买其中一个商店商品,或送出打赏。然后在 App 的方案页面打开添加 Ko-fi 款项,输入 Ko-fi 收据上的交易 ID,或包含它的链接。每笔付款会把它的天数加到剩余天数上。
付款记录列出 Ko-fi 发来的所有付款。待认领表示还没有人添加它,未匹配表示没有符合的商品;两者都可以用提供给账号手动处理。Ko-fi 不会报告退款:给某人退款后,请到账号撤销他的方案。
PayPal
Section titled “PayPal”- 在 developer.paypal.com 为你的 PayPal 商家账户创建一个 REST 应用。在方案与付款下,把它的客户端 ID 粘贴到 PayPal 客户端 ID,密钥粘贴到 PayPal 密钥。
- 在该应用添加一个 webhook,网址填
<公开网址>/api/v1/webhooks/paypal(/admin会显示确切的网址),并勾选这些事件:CHECKOUT.ORDER.APPROVED、PAYMENT.CAPTURE.COMPLETED、PAYMENT.CAPTURE.REFUNDED、PAYMENT.CAPTURE.REVERSED、PAYMENT.CAPTURE.DENIED、PAYMENT.SALE.COMPLETED,以及所有BILLING.SUBSCRIPTION.*事件。公开网址必须是https://。 - 把 webhook 的 ID 复制到 PayPal Webhook ID。客户端 ID、密钥与 webhook ID 都设置之前,PayPal 不会开启。
- 在方案下,为每样销售的东西添加一个付款方式为 PayPal 的商品。它的方案 ID 或名称决定它是什么:
- PayPal 订阅方案的 ID(以
P-开头)会让它成为订阅。价格由 PayPal 设置,只要订阅持续付款,方案就一直有效。- 若 PayPal 方案有免费试用,请把无试用期的方案 ID 设为同一个方案但没有试用期的 ID。PayPal 会让每笔新订阅都有试用,所以试用过的账号会改订那个方案。每个账号只有一次试用期间能获得权限。
- 其他任何名称都会让它成为一次性付款,金额与币种按商品设置,付款后把它的天数加到剩余天数上。
- PayPal 订阅方案的 ID(以
若想先试用,请开启 PayPal 沙盒并使用沙盒应用的凭据:不会真的付款。
付款人在 App 的方案页面点选其中一个方案,在 PayPal 付款后回到 App,App 会告知付款是否成功。服务器会向 PayPal 核实每笔付款,不采信其他来源。订阅者可以在 paypal.com 更改或取消订阅,管理 PayPal 订阅会打开那里。
PayPal 会报告退款与撤回:该笔付款在付款记录中会显示为已退款,它给的时间也会收回。
只有网页版,以及设置为允许外部付款的 Android 构建(见 Android 正式版构建),会显示 Ko-fi 与 PayPal。其他版本只显示方案与它的限制。
Google Play
Section titled “Google Play”只有 App 的 play 构建会销售 Google Play 订阅(见 Android 正式版构建),而且只限你上架时使用的软件包名称。
- 在 Play 管理中心创建订阅,并为每个订阅启用一个基础方案。
- 在 Google Cloud 创建一个服务账号及它的 JSON 密钥。在 Play 管理中心的用户和权限下邀请它,并授予查看财务数据、管理订单和订阅的权限。
- 在方案与付款下设置 Google Play 软件包名称,并把密钥粘贴到 Google Play 服务账号。两者都设置后,Google Play 就会开启。
- 在方案下添加商品,付款方式选 Google Play,填入 Play 管理中心中的产品 ID,以及它购买的方案。Google Play 会告知每笔付款何时结束,因此商品没有自己的天数。
- 若要让续订与取消自动送达,请创建一个 Pub/Sub 主题,授予
[email protected]该主题的 Pub/Sub 发布者角色,再到 Play 管理中心的创收设置填入这个主题。接着添加一个推送到<公开网址>/api/v1/webhooks/play的推送订阅,开启身份验证,以同一个网址作为受众,并使用你自己的服务账号;把那个账号的电子邮件填为 Pub/Sub 推送账号。没有这些设置时,续订只会在所有者打开方案页面时才送达。
服务器会向 Google 核实每笔购买,不采信其他来源,因此在 Play 管理中心做的退款与撤销也会同样送达。在账号撤销方案后,即使 Google 再次报告该笔购买,撤销仍然有效,但这不会停止订阅:请同时在 Play 管理中心取消。
每笔付款都会保存付款人的电子邮件与名称。设置 BALNANA_PAYMENT_KEEP_DAYS 后,它们会在那么多天后清除;金额、日期与方案则会保留,即使账号已删除。之后未认领的付款只能用交易 ID 认领。请按你所在国家对销售记录的要求决定天数,并写在你的隐私政策中。未设置或设为 0 时,会永久保存。
除了最后一项,以下都是 admin 设置:也可以写在 .env 中,且 .env 的值优先于 /admin(见设置)。
| 设置 | 在 /admin 中 |
|
|---|---|---|
BALNANA_BILLING_ENABLED |
方案与限制 | 设为 true 开启方案。需要 BALNANA_AUTH_MODE=accounts。 |
BALNANA_KOFI_URL |
Ko-fi 页面 | https:// 网址。需与令牌一起设置。 |
BALNANA_KOFI_TOKEN |
Ko-fi 验证令牌 | |
BALNANA_PAYPAL_CLIENT_ID |
PayPal 客户端 ID | 来自 developer.paypal.com 的 REST 应用。需与密钥、webhook ID 一起设置。 |
BALNANA_PAYPAL_SECRET |
PayPal 密钥 | |
BALNANA_PAYPAL_WEBHOOK_ID |
PayPal Webhook ID | |
BALNANA_PAYPAL_SANDBOX |
PayPal 沙盒 | 设为 true 时使用 PayPal 沙盒,并搭配沙盒应用的凭据。 |
BALNANA_PLAY_PACKAGE |
Google Play 软件包名称 | |
BALNANA_PLAY_SERVICE_ACCOUNT |
Google Play 服务账号 | 服务账号的 JSON 密钥。 |
BALNANA_PLAY_PUSH_ACCOUNT |
Pub/Sub 推送账号 | |
BALNANA_PAYMENT_KEEP_DAYS |
— | 只能写在 .env。见付款记录。 |