我的应用程序的行为方式如下:用户有会话,持续约1-3个小时。在该会话期间,用户进行不确定的购买次数。进一步假设一些用户可以补偿其他用户的购买,例如作为用户,我可以支付一定比例的购买费用。我想要做的是最大限度地减少信用卡费用的总数,并最大限度地提高所有费用成功的概率。
具体示例:
有两个用户和三个时间周围:u1
,u2
和t1
,t2
,t3
。在t1
,u1
和u2
购买10美元。在t2
,u1
购买了20美元。在t3
中,u2
会对u1
次购买的5美元补偿t2
。金额在此表中列出:
| t1 | t2 | t3 |
----|------|------|------|
u1 | $10 | $20 | -$5 |
u2 | $10 | $0 | $5 |
简单解决方案1:每个人都收费!
每当有人进行购买时,为原始金额创建一次充电捕获,然后只有在某人的购买得到补偿时才收取更少的费用。在这个解决方案中,上述问题产生了4个单独的费用(每次购买一次,一次用于补偿')。问题在于,实际上,我正在运行四项指控,但只有三次购买。我正在最大化交易成功的可能性,但收费并未最小化。
简单解决方案2:求和
将所有购买和付款保存在数据库中,在t3
之后对其进行汇总,然后为汇总金额收取单笔大额费用。这样做的问题是用户可能会遇到帐户限制,直到我收取大笔费用才能知道。例如。假设u1
有20美元的信用额度,即使我检查他的每笔购买都将单独进行,汇总也会失败。当我汇总时,用户已经收到他所购买的东西,现在我对失败的交易负责。 (显然不好。)
复杂的解决方案1:每个人都获得了捕获!
当u1
和u2
最初购买10美元时,我会在每张卡片上创建50美元的捕获量。 t2
中的后续购买会与t1
中的购买汇总在一起。因此,u1
和u2
分别只收取25美元和15美元的费用。这很好,因为付款成功率很高,而且我只收取两笔费用。这个问题是我不知道在t1
捕获的金额。假设后续t2
次购买超过了捕获量;现在我必须在t2
中创建新的费用,我们回到简单的解决方案1。
复杂的解决方案2:滚动总和捕获
在t1
中为每个用户的购买创建捕获。在t2
中,退还t1
中的抓取内容,然后将t1
和t2
次购买汇总到新的抓取中。在第三步中重复。因此,在t1
每个用户有10美元的捕获,在t2
中,这些被退还并被30美元和10美元的捕获所取代,在t3
中,他们获得了30美元和15美元的捕获。 t3
完成后,他们会收取25美元和15美元的费用。这似乎是最好的解决方案,但有很多捕获和退款,也许这是因为我还不了解的某些原因造成的。
我还没有想到这种情况的更好/其他解决方案吗?复杂的解决方案2是否有问题我无法看到?
答案 0 :(得分:1)
复杂的解决方案2应该可行,但是在短时间内在同一张卡上收取过多费用的风险可能会触发欺诈检测算法。
我建议直接在https://support.stripe.com/email与Stripe的支持联系。他们的专家应该能够帮助您确定应用的最佳付款流程。