stripe:在订阅上设置连接帐户时出现问题

7bsow1i6  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(430)

我有一些问题,添加一个数额的费用订阅条纹。看看这个文件,我应该能够添加一个连接帐户时,创建订阅,这样我就可以设置订阅的申请费,而不必做任何修改之后。
我正在尝试使用订阅创建上的requestoptions添加连接的条带帐户,但似乎如果我使用它,它会重定向到live帐户,并且它找不到我使用的客户,从而导致请求失败。
以下是整个过程的代码:

attachPayMethodToCustomer(bookingDetails.getPaymentMethod(), user.getCustomerId());
        Price price = getPriceForItem(item, bookingDetails.isExclusive());

        SubscriptionCreateParams.Item item = SubscriptionCreateParams.Item.builder()
                .setQuantity(1L)
                .setPrice(price.getId())
                .build();

        BigDecimal bd = new BigDecimal(calculateSubscriptionFee(price.getUnitAmount() / 100, bookingDetails.isRecorded()), new MathContext(2, RoundingMode.HALF_UP));

        SubscriptionCreateParams.Builder params = SubscriptionCreateParams.builder()
                .setCustomer(user.getCustomerId())
                .setApplicationFeePercent(bd)
                .addItem(item);

        if (bookingDetails.hasExtras()) {
            Price recordPrice = getExtrasPrice(seller().getCurrency());
            SubscriptionCreateParams.Item extraItem = SubscriptionCreateParams.Item.builder()
                    .setQuantity(1L)
                    .setPrice(extraPrice.getId())
                    .build();

            params.addItem(extraItem);
        }

        RequestOptions ro = new RequestOptions.RequestOptionsBuilder()
                .setStripeAccount(seller.getStripeAccountId())
                .build();

        Subscription subscription = Subscription.create(params.build(), ro);

我在尝试创建订阅时收到此异常:
com.stripe.exception.invalidrequestexception:没有这样的客户:'cusèiafzjrbabs';代码:缺少资源单元;请求id:req\u c67jn4tgnex,但我可以在 Jmeter 板上看到客户。我还试图重写stripeapi密钥以使用test-one,但我遇到了相同的问题。
非常感谢,阿德里án

blpfk2vs

blpfk2vs1#

在与stripe support交谈之后,我似乎用了错误的方法。
为此,他们有一个不同的方式,他们称之为目的地费用(这里是链接)
基本上,订阅中有一个名为transferdata的选项,您可以在其中放置连接的帐户id,而不是使用的requestoptions

SubscriptionCreateParams params = SubscriptionCreateParams.builder()
  .setCustomer("cus_XXXXXXX")
  .addItem(SubscriptionCreateParams.Item.builder()
    .setPrice("price_XXXXX")
    .build())
  .setTransferData(
    SubscriptionCreateParams.TransferData.builder()
      .setDestination("{{CONNECTED_STRIPE_ACCOUNT_ID}}")
      .build())
  .addExpand("latest_invoice.payment_intent")
  .build();
Subscription subscription = Subscription.create(params);

非常感谢您的支持团队!

相关问题