如何从Stripe API中的费用对象中扣除申请费?

时间:2017-11-05 02:44:35

标签: java stripe-payments stripe-connect

扣除(平台费用 + 条带费用)后,

Customer1 正在向 Customer2 付款。运行这样的场景。我在Stripe-Connect中执行了以下步骤:

  1. 创建 Customer1 对象并添加了卡片信息。
  2. 使用端点为 Customer2 创建了一个帐户:https://stripe.com/docs/api#create_account
  3. 我可以在Connected account部分看到已创建的帐户。

    enter image description here

  4. 从浏览器本身输入测试Legal entity后验证了该帐户。

  5. 创建Charge对象( Customer1 正在付费),其中还有application_fee。请求中提到的目标帐户是新生成的Customer2帐户。

  6. 我正在使用Java API并且它给我一个错误:

    Can only apply an application_fee when the request is made on behalf of another account (using an OAuth key, the Stripe-Account header, or the destination parameter).
    

    我尝试在StackOverflow上进行跟进,似乎我需要创建一个platform account来启动此类收费。如果是,我如何创建Platform account

    在扣除Customer1后,如何帮助我向Customer2收取费用并将资金转入connect application_fee帐户?

    这对我来说听起来有点混乱。任何帮助或暗示都会很明显。

1 个答案:

答案 0 :(得分:1)

您已在此处拥有平台帐户。这只是用于描述已连接帐户的主帐户(您的)的词。

这里的问题似乎与您创建Charge的方式有关。如果您代表已连接的帐户明确提出该请求,则您只能收取申请费。目前有两种方法可以做到这一点:

  • Destination收费通过平台,资金自动发送到关联帐户
  • Direct费用直接在已关联的帐户中创建,申请费将发回给您。

由于您使用Custom帐户创建并拥有卖家帐户,因此您应该使用第一种方法。在这种情况下,您甚至不需要支付申请费。相反,您只需决定在创建费用时向连接帐户发送多少内容。这个想法是你收取100美元,你只需要向关联账户发送90美元,这样你自己就可以保留10美元(减去Stripe的费用)。

代码如下所示:

// Create the list of parameters for the charge
Map<String, Object> params = new HashMap<String, Object>();
params.put("amount", 10000); // amount to charge in cents
params.put("currency", "usd");
params.put("source", "tok_visa");

// Decide how what to send to the connected account
Map<String, Object> destinationParams = new HashMap<String, Object>();
destinationParams.put("account", "acct_XXXXX"); // connected account id
destinationParams.put("amount", 9000); // amount to send to the connected account
params.put("destination", destinationParams);
Charge charge = Charge.create(params);