2016-05-19 3 views
0

Общая цель для меня - создать скидки на разовые покупки, используя Stripe API. Я заметил, что скидки через API предназначены только для счетов-фактур, которые я не использую для разовых платежей.Изменить сумму на счете полосы

В настоящее время я пытаюсь изменить сумму заказа. Я прочитал в API, что вы не можете обновить сумму заказа, поэтому мне нужно удалить существующий порядок, созданный с помощью моего кода, и создать новый, но с другой суммой, чем цена оригинального товара SKU. Это не работает.

Запрос выглядит следующим образом (через полосовой журнал приборной панели):

{ 
items: 
0: 
    type: "sku" 
    parent: "sku_8E8ZS8KYaJbUkK" 
    quantity: "1" 
    amount: "6800" 
1: 
    type: "sku" 
    parent: "sku_8E8I4F1FcseFQz" 
    quantity: "2" 
    amount: "6800" 
    customer: cus_8TV6gRP0hrxmEy 
    currency: "sek" 
    metadata: 
    delivery_date: "1463814000" 
} 

Но ответ, кажется, игнорирует мое обновленное количество:

items: { 
    object: "order_item" 
    amount: 8500 
    currency: "sek" 
    description: "Specialpåse" 
    parent: "sku_8E8ZS8KYaJbUkK" 
    quantity: 1 
    type: "sku" 
} 

PHP код:

$newOrder = \Stripe\Order::create(array(
       "items" => generateItems($items), 
       "customer" => $customer, 
       "currency" => "sek", 
       "metadata" => array("delivery_date" => $delivery_date) 
      )); 

function generateItems($items) { 
     $newArray = array(); 
     $x = 0; 
     foreach ($items as $i) { 
      $newArray[$x] = array("type" => $i['type'], "parent" => $i['parent'], "quantity" => $i['quantity'], "amount" => $i['product_price']*100); 
      $x++; 
     } 
     return $newArray; 
    } 

Где $ items выглядит примерно так:

Array 
(
    [0] => Array 
     (
      [type] => sku 
      [parent] => sku_8E8ZS8KYaJbUkK 
      [quantity] => 2 
      [name] => Specialpåse 
      [product_price] => 68 
      [subscription_price] => 60 
      [purchase_type] => single_purchase 
     ) 

    [1] => Array 
     (
      [type] => sku 
      [parent] => sku_8E8I4F1FcseFQz 
      [quantity] => 3 
      [name] => Familjepåse 
      [product_price] => 68 
      [subscription_price] => 60 
      [purchase_type] => single_purchase 
     ) 

) 
+0

Разве это не прямой вопрос Stripe поддержки? – Peon

+1

Если я вижу это правильно, вы не можете * удалить * заказ, вы можете только ** отменить ** его, добавив в ваш запрос 'status = cancel': https://stripe.com/docs/api# update_order – Peon

ответ

1

В order creation requests можно применять скидки к заказам, используя параметр coupon.

В PHP это будет выглядеть следующим образом:

$newOrder = \Stripe\Order::create(array(
    "items" => generateItems($items), 
    "customer" => $customer, 
    "currency" => "sek", 
    "metadata" => array("delivery_date" => $delivery_date), 
    "coupon" => $couponId 
)); 
Смежные вопросы