Полосы Сборы против разъяснений заказов - PullRequest
0 голосов
/ 05 июня 2018

Я внедряю платежную платформу с Stripe.Для разового платежа я создаю Charge.Это работает, без проблем, но мне также нужно применить налоговую пошлину к продукту, который определен в объекте Order.Означает ли это, что мне нужно каким-то образом заменить Сборы на Заказы или Заказ является родительским объектом для сбора?Если да, то как мне связать эти 2 вместе?Или есть способ применить налоговые сборы к сборам, которых я не видел?Спасибо

РЕДАКТИРОВАТЬ:

    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;
    }

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете добавить налог к ​​вашему заказу, создав позицию заказа с типом, установленным на налог, например,

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".

Обратите внимание, что объект заказа содержит поле начисления.Как только заказ оплачен, он заполняется идентификатором заряда.Нет необходимости заменять платежи заказами, Stripe сделает это обновление для вас, чтобы связать платеж с заказом.

См. Документы API для получения дополнительной информации.

...