update-order
POST /api/{team}/gateway/update-order/{token}
Ödenmemiş bir siparişi değiştirir. Yalnızca gönderilen alanlar yazılır; gönderilmeyenler olduğu gibi kalır. Ödenmiş sipariş ve üzerinde sonuçlanmamış bir ödeme bulunan sipariş değiştirilemez. Aynı reference ile yeniden create-order çağırmak var olan siparişi değiştirmez, yeni bir sipariş açar; var olan sipariş yalnızca bu uçla, token'ıyla değiştirilir.
Kimlik doğrulama
X-Api-Key, X-Timestamp, X-Signature, Content-Type: application/json. Ayrıntılar: Kimlik Doğrulama ve İmza.
İstek
{
"token": "3b7e1f20-5c4a-4d8e-9f1b-7a6c5d4e3f21",
"order": {
"description": "Hediye paketi",
"cancel_url": null
}
}
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
token | string | evet | Siparişin token'ı. Adresteki token'la aynı olmalıdır. |
order | object | hayır | Değiştirilecek alanlar; create-order ile aynı alanlar ve kurallar. Hiçbiri zorunlu değildir. |
customer | object | hayır | Müşteri. Gönderilen alanlar mevcut müşteri bilgisinin üzerine yazılır, gönderilmeyenler korunur. Alanlar: customer nesnesi. |
- Yalnızca müşteriyi değiştirmek için
orderhiç gönderilmeyebilir ya da boş gönderilebilir. itemsgönderilirse kalemlerin tamamı gönderilenlerle değiştirilir.description,cancel_url,payment_provider_tokeniçinnullgönderilirse alan boşaltılır.currencynullgönderilirseTRYolur.
SDK örnekleri
Örneklerdeki $client / client nesnesinin kurulumu: İstemciyi Kurmak. SDK'larda bir alanı boşaltmak için PHP, Python ve Java'da clear, Node.js'de alana null verilir.
- PHP
- Node.js
- Python
- Java
- cURL
use Gurmehub\Odemehub\Request\UpdateOrder;
$details = $client->updateOrder(new UpdateOrder(
token: $orderToken,
description: 'Hediye paketi',
clear: ['cancel_url'],
));
const details = await client.updateOrder({
token: orderToken,
description: 'Hediye paketi',
cancelUrl: null,
});
from odemehub.request import UpdateOrder
details = client.update_order(UpdateOrder(
token=order_token,
description="Hediye paketi",
clear=["cancel_url"],
))
import com.odemehub.request.UpdateOrder;
var details = client.updateOrder(UpdateOrder.builder(orderToken)
.description("Hediye paketi")
.clear("cancel_url")
.build());
URI_PATH="/api/$ODEMEHUB_TEAM/gateway/update-order/3b7e1f20-5c4a-4d8e-9f1b-7a6c5d4e3f21"
BODY='{"token":"3b7e1f20-5c4a-4d8e-9f1b-7a6c5d4e3f21","order":{"description":"Hediye paketi","cancel_url":null}}'
TIMESTAMP=$(date +%s)
SIGNATURE=$(printf '%s\n%s\n%s\n%s' "$TIMESTAMP" "POST" "$URI_PATH" "$BODY" | openssl dgst -sha256 -hmac "$ODEMEHUB_API_SECRET" | sed 's/^.* //')
curl -X POST "https://sandbox.odemehub.com$URI_PATH" \
-H "Content-Type: application/json" \
-H "X-Api-Key: $ODEMEHUB_API_KEY" \
-H "X-Timestamp: $TIMESTAMP" \
-H "X-Signature: $SIGNATURE" \
--data-raw "$BODY"
Yanıt
retrieve-orders ile aynıdır: result, siparişin güncel hâli (order) ve customer. Toplamlar değişikliğe göre yeniden hesaplanmıştır. Ödeme sayfasında kupon uygulanmışsa order.discount doludur ve subtotal, tax_amount, amount indirim düşülmüş değerlerdir; bkz. Kupon ve discount.
HTTP durum kodları
| Kod | Durum |
|---|---|
200 | Sipariş değiştirildi. |
401 | API anahtarı ya da imza geçersiz. |
403 | Çalışma alanı işlem yapamıyor, planı siparişleri kapsamıyor ya da Siparişler modülü kapalı. |
404 | Bu sipariş bulunamadı. |
422 | Doğrulama hatası ya da sipariş değiştirilemiyor. |
429 | İstek sınırı aşıldı. |
Hatalar
| Alan | Mesaj |
|---|---|
token | Gövdedeki token adresteki token ile aynı olmalı. |
token | Ödenmiş sipariş güncellenemez. / Bu sipariş için bekleyen bir ödeme var, tamamlanmasını bekleyin. |
order.* | create-order ile aynı alan mesajları. |