【发布时间】:2021-04-04 11:38:56
【问题描述】:
我在为 Stripe 订阅添加金额时遇到了一些问题。看看this documentation,我应该可以在创建订阅时添加一个连接的帐户,这样我就可以为订阅设置申请费,而无需事后对其进行任何修改。
我正在尝试在订阅创建时使用 RequestOptions 来添加连接的条带帐户,但似乎如果我使用它,它会重定向到真实帐户,并且找不到我正在使用的客户,使请求失败.
下面是整个流程的代码:
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_IaFZjrBAlBsXXX';代码:resource_missing; request-id: req_C67JN4tgneXXXX 但我可以在仪表板上看到客户。我还尝试覆盖条带 api 密钥以使用测试密钥,但我有同样的问题。
非常感谢, 阿德里安
【问题讨论】:
-
"No such..." 错误通常是由于 API 密钥不匹配(例如使用测试和实时密钥的混合)或尝试访问存在于不同帐户上的对象引起的(例如,尝试从您的平台帐户对已连接帐户上创建的对象执行操作)。在您的情况下,您应该检查客户是否存在于
seller.getStripeAccountId()中设置的帐户中。 -
我一直在调试它,在我看来一切正常。事实上,我可以在开发人员仪表板上看到错误,我可以通过那里的请求数据上提供的链接找到给我错误的客户。也许我的帐户有问题,我发送了一个请求到条带支持,试图找出问题所在。我也会在这里发布他们的答案
标签: java stripe-payments subscription