我们正在其中一个应用程序中使用Stripe支付网关。
在我们的模型中,我们将拥有客户和条带连接帐户。
我们将向客户收取某些服务费用,然后定期(每周/每月等)将客户收入的份额转移到
连接帐户。关联账户持有人是业务合作伙伴。
我能够成功地使用卡创建客户并在以后使用Stripe java API向他们收费。但我在将金额转移到独立的关联账户时遇到问题。
我按照Stripe文档中的this链接连接到独立帐户
连接到独立帐户后,我在数据库中存储的响应中收到帐户的条带帐户ID,可发布密钥,令牌等。
稍后,在尝试将资金转移到此关联帐户时,我获得了例外。
com.stripe.exception.InvalidRequestException: No such token: pk_test_kXinGPY8H2cyc5vWOQagwkbE;
我真的不确定' source'的价值是什么?转账到关联账户时的参数。它应该是指先前向客户收取的付款吗?由于将向客户收取多笔付款,并且只有一笔定期转帐到关联帐户,因此我不确定应该从哪些来源获取。
我的示例代码为,
Stripe.apiKey = "platform account's secret key"
Charge charge = null;
Map<String, Object> chargeParams = new HashMap<String, Object>();
chargeParams.put("amount", 200);
chargeParams.put("currency", "usd");
chargeParams.put("source", "pk_test_kXinGPY8H2cyc5vWOQagwkbE"); //{platform accounts public key}
chargeParams.put("destination", ""acct_18gKXJHZfNFseiFv""); //Connected account's id
charge = Charge.create(chargeParams);
我只是想知道上述业务场景是否可以通过Stripe网关实现。如果是,有人请指出我在上面的示例代码中可能犯的任何错误。 感谢。
修改
所以看来,在正常情况下,Stripe不允许将资金从一个Stripe账户转移到其他没有转账的账户 直接与客户收费相关联。 它允许从一个Stripe帐户进行特殊情况转移,但允许此类付款的数量不能超过总体的10% 交易。
在我们的情况下,我们只需要定期向子商家支付他们的收入份额,并且它不一定必须是条带到条带的转移。我们总是可以将客户注册为他/她自己的Stripe平台帐户中的客户之一。我们将向该客户添加客户的信用卡/借记卡详细信息
帐户。然后,我们可以使用客户的客户帐户将资金转移到独立帐户。
它应该工作,对吗?
答案 0 :(得分:1)
Stripe的典型付款流程可分为两个步骤:
客户端,在您的前端代码(HTML + JavaScript)中,您使用Checkout或Stripe.js(配置了可发布的API密钥)来收集客户的付款信息并将其转换为进入一个令牌。创建令牌后,您将其发送到您的服务器。
服务器端,在您的后端代码中(在您的情况下,在Java中),您实际使用令牌create a charge。
您的代码中的问题是您使用可发布密钥作为source
参数。此参数应包含在前端中创建的令牌的ID。令牌ID是以"tok_"
开头的字符串,后跟随机的字母数字字符。
其余代码看起来是正确的,但如果您的平台需要删除事务,则可能需要添加application_fee
参数。事实上,您的平台将支付Stripe的费用,但由于所有资金都被发送到关联账户,因此不会从交易中获得任何资金。
答案 1 :(得分:0)
为什么不创建一个与公司目标银行账户相关联的特殊客户,并向他收取费用#34;转让给您的股东?除非您使用条带进行某些审核,否则您只能将其用作渠道。