我正在尝试从我的平台创建一个连接帐户的直接费用。Stripe支持部门建议我使用共享客户来实现这一点,但这只是造成了更多的问题。
代码本身是非常简单的,如果它起作用的话。它用
src_...
iOS应用程序提供的令牌。这是可行的。然后,它尝试使用
StripeTokenService()
. 这不起作用,尽管
the documentation to the letter
. 我收到的错误是:
您提供了一个没有指定来源的客户。客户的默认源是源,不能从现有客户共享。
我在stripe.net sdk中看不到向共享客户提供源代码的方法。我能提供的只是
Card
或
BankAccount
,作为API,我想做的任何一个都不应该对敏感的用户信息保持不可知性。
我到底做错了什么?
StripeConfiguration.SetApiKey(Settings.Stripe.SecretKey);
var businessRequestOptions = new StripeRequestOptions { StripeConnectAccountId = businessOwner.StripeAccountId };
var customerService = new StripeCustomerService();
customerService.Update(userDetail.StripeCustomerId, new StripeCustomerUpdateOptions
{
SourceToken = stripeToken // = 'src_...'
});
var tokenService = new StripeTokenService();
// this is the call that generates the error I mentioned above \/ \/
var token = tokenService.Create(new StripeTokenCreateOptions
{
CustomerId = userDetail.StripeCustomerId // = 'cus_...'
}, businessRequestOptions);
// create a direct charge to the business account (taking out application fee)
var chargeService = new StripeChargeService();
var stripeCharge = chargeService.Create(new StripeChargeCreateOptions
{
Amount = Convert.ToInt32(fee),
Currency = currency,
Description = $"Payment to {businessOwner.BusinessName} through Service X",
ApplicationFee = applicationFee,
SourceTokenOrExistingSourceId = token.Id, // use shared customerId here
}, businessRequestOptions);