我正在使用Stripe实施支付平台。 对于单笔付款,我创建了一个Charge。 它有效,没问题,但我还需要对Order对象中定义的产品征税。 这是否意味着我需要以某种方式用订单替换费用或订购父费对象?如果是这样,我如何将这两个链接在一起?或者有一种方法可以对我没有看到的收费征税? 感谢
编辑:
public async Task<StripeCharge> CreateStripeChargeAsync(StripeProduct product, StripeSku sku, StripeCustomer customer, string orderId)
{
var charge = await _chargeService.CreateAsync(new StripeChargeCreateOptions
{
Amount = sku.Price,
Currency = sku.Currency,
Description = product.Description,
CustomerId = customer.Id,
SourceTokenOrExistingSourceId = customer.DefaultSourceId,
ReceiptEmail = customer.Email,
Metadata = new Dictionary<string, string>
{
{ "OrderId", orderId }
}
});
return charge;
}
答案 0 :(得分:0)
您可以通过创建类型设置为tax的订单商品为您的订单添加税,例如
Stripe\OrderItem JSON: {
"object": "order_item",
"type": "tax",
"amount": 1234,
"currency": "usd",
"description": "Tax",
"parent": "null",
"quantity": null
}
将此附加到您的订单商品列表中。我不能真正给出一个代码示例,因为你没有提到一种语言,但你的订单对象看起来像......
Stripe\Order JSON: {
"id": "or_1CZfbeCAQSQw5dVw1BSP63dZ",
"object": "order",
"amount": 1500,
"amount_returned": null,
"application": null,
"application_fee": null,
"charge": null,
"created": 1528206830,
"currency": "usd",
"customer": null,
"email": null,
"items": [
{
"object": "order_item",
"amount": 10000,
"currency": "usd",
"description": "My Product name",
"parent": "sk_1BQuNoCAQSQw5dVwjf30OpxH",
"quantity": null,
"type": "sku"
},
"object": "order_item",
"type": "tax",
"amount": 1234,
"currency": "usd",
"description": "Tax",
"parent": "null",
"quantity": null
], etc...
您可以使用相同的想法来添加运费,甚至可以使用type =“shipping”或“discount”来应用折扣。
请注意,订单对象包含费用字段。订单付款后,将填入费用ID。无需用订单替换费用,Stripe将为您将付款链接到订单进行此更新。
有关详细信息,请参阅API Docs。