【问题标题】:Stripe Charges vs Orders clarificationsStripe Charges vs Orders 澄清
【发布时间】:2018-11-15 00:52:24
【问题描述】:

我正在使用 Stripe 实施支付平台。 对于单笔付款,我创建了一项费用。 它可以工作,没问题,但我还需要对 Order 对象中定义的产品征收税费。 这是否意味着我需要以某种方式将 Charges 替换为 Orders 或者 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;
    }

【问题讨论】:

  • 你看过 API 文档吗? stripe.com/docs/api/php#order_object
  • 是的,我不确定我需要使用什么,这就是我谦虚地问这个问题的原因。感谢您的有用评论

标签: stripe-payments


【解决方案1】:

例如,您可以通过创建类型设置为税的订单项目来为您的订单添加税

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 了解更多信息。

【讨论】:

  • 这个问题不是面向语言的,但我添加了代码。所以用户在我们的网站上选择了一个产品,这会创建一个收费的 atm,我只需要为此添加税金。你基本上是说我不应该使用 Charge 对象来做到这一点,而是 order 对象能够添加税费?
  • 我的代码中的 orderid 只是我数据库中的文档的 ID,其中保存了费用的副本 + 一些其他信息,它不是 StripeOrder 对象
  • 当用户点击“购买”时,您应该创建一个订单对象。然后调用 Order.pay(); 创建费用。
  • 哦订单产生费用?所以我不应该像以前那样手动创建费用吗?
  • 通过订阅、发票、订单等多种方式收取费用。根据具体情况选择合适的方式。我认为收费是其他过程的最终结果。
猜你喜欢
  • 1970-01-01
  • 2012-06-14
  • 2012-07-20
  • 1970-01-01
  • 2020-11-27
  • 2019-12-24
  • 1970-01-01
  • 2012-02-29
  • 2020-10-29
相关资源
最近更新 更多