2016-05-19 9 views
0

Das Gesamtziel für mich ist, Rabatte für einmalige Einkäufe zu erstellen, mit der Stripe-API. Ich habe festgestellt, dass Rabatte über die API nur für Rechnungen gelten, die ich nicht für einmalige Zahlungen verwende.Betrag bei Streifenauftrag ändern

Was ich gerade versuche ist, die Bestellmenge zu ändern. Ich habe in der API gelesen, dass Sie den Bestellbetrag nicht aktualisieren können. Daher muss ich die vorhandene Bestellung, die über meinen Code erstellt wurde, entfernen und eine neue Bestellung erstellen, die jedoch einen anderen Betrag als den Preis des ursprünglichen SKU-Artikels hat. Dies scheint nicht zu funktionieren.

Der Antrag sieht wie folgt aus (durch Streifen Armaturenbrett log):

{ 
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" 
} 

Aber die Antwort scheint meine aktualisierter Betrag zu ignorieren:

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

PHP-Code:

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

Wo $ -Elemente in etwa so aussehen:

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

Ist dies nicht eine direkte Frage Unterstützung Stripe? – Peon

+1

Wenn ich dies richtig sehe, können Sie keine Bestellung * löschen *, sondern nur ** stornieren ** indem Sie 'status = cancelled' zu Ihrer Anfrage hinzufügen: https://stripe.com/docs/api# update_order – Peon

Antwort

1

Es ist möglich, Rabatte auf Bestellungen anzuwenden, indem der coupon Parameter in order creation requests verwendet wird.

In PHP, würde es so aussehen:

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