【发布时间】:2018-11-24 22:49:32
【问题描述】:
使用 Stripe 元素和 Stripe.net。我获得令牌并创建客户和来源并使用以下代码对其收费 - 工作正常
StripeConfiguration.SetApiKey(stripeKey);
var charges = new StripeChargeService();
var charge = charges.Create(new StripeChargeCreateOptions
{
Amount = thisCharge.Amount,
Currency = "usd",
Description = thisCharge.ProductDesc,
StatementDescriptor = thisCharge.ProductDesc,
//SourceTokenOrExistingSourceId = source.Id,
ReceiptEmail = thisCharge.EmailAddress,
CustomerId = thisCharge.StripeCustomerID,
Metadata = new Dictionary<String, String>()
{
{ "Name", thisCharge.CardHolderName }, { "Email",thisCharge.EmailAddress }
}
});
然后我尝试使用另一张卡 (5555 5555 5555 4444) 与同一客户进行第二次收费,但显然我遗漏了一些东西。
使用此代码
static StripeSource NewSource(string stripeKey, Charge charge)
{
StripeConfiguration.SetApiKey(stripeKey);
var sourceOptions = new StripeSourceCreateOptions
{
Type = StripeSourceType.Card,
Currency = "usd",
Amount = charge.Amount,
Token = charge.Token,
Owner = new StripeSourceOwner
{
Email = charge.EmailAddress,
Name = charge.CardHolderName
}
};
var sourceService = new StripeSourceService();
StripeSource source = sourceService.Create(sourceOptions);
return source;
}
但我收到此错误:
无效的令牌 ID:src_....
如果我跳过添加新来源,那么费用会通过,但会针对原始来源。
所以显然遗漏了一些东西......感谢任何帮助。
【问题讨论】:
-
嗯,在上面我看到你有代码来创建一个费用,然后创建一个源(从一个令牌)。您是否在尝试收费之前将新来源附加到客户?如果您还没有这样做,我认为这可能是您的问题。 stripe.com/docs/api/sources/attach?lang=dotnet
-
@duck - 我想通了 - 当我提交表单时,我得到一个令牌“src_”,它已经是一个来源。所以我不需要创建一个新的来源——也不能用那个令牌。我需要做的是将该来源添加给客户。呵呵。
标签: asp.net-mvc stripe-payments