Ana içeriğe geç

update-subscription

POST /api/{team}/gateway/update-subscription/{token}

Aboneliği değiştirir ya da iptal eder. Yalnızca gönderilen alanlar yazılır; gönderilmeyenler olduğu gibi kalır. Sona ermiş, tamamlanmış ya da iptal edilmiş bir abonelik ve üzerinde sonuçlanmamış bir ödeme bulunan abonelik değiştirilemez.

Kimlik doğrulama​

X-Api-Key, X-Timestamp, X-Signature, Content-Type: application/json. Ayrıntılar: Kimlik Doğrulama ve İmza.

İstek​

İptal:

{
"token": "9a2c4e6f-1b3d-4f5a-8c7e-2d4f6a8b0c1e",
"subscription": {
"status": "cancelled"
}
}
AlanTipZorunluAçıklama
tokenstringevetAboneliğin token'ı. Adresteki token'la aynı olmalıdır.
subscriptionobjecthayırDeğiştirilecek alanlar; create-subscription ile aynı alanlar ve kurallar. Hiçbiri zorunlu değildir.
subscription.statusstringhayırYalnızca "cancelled" kabul edilir.
subscription.renewal_limitinteger | nullhayırŞimdiye kadar ödenen dönem sayısından az olamaz. null sınırı kaldırır.
customerobjecthayırMüşteri. Gönderilen alanlar mevcut müşteri bilgisinin üzerine yazılır, gönderilmeyenler korunur. customer.reference silinemez.
  • Yalnızca müşteriyi değiştirmek için subscription hiç gönderilmeyebilir ya da boş gönderilebilir.
  • items gönderilirse ödenmemiş bütün dönemlerin tutarı yeniden hesaplanır.

İlk ödemeden sonra değişmeyen alanlar​

İlk dönem ödendikten sonra yalnızca subscription.status, subscription.renewal_limit, subscription.period ve subscription.items gönderilebilir; kalemler aynı kalmalı, yalnızca unit_amount değişebilir. Başka bir alan ya da customer gönderilirse istek 422 döner.

İptal​

status: "cancelled", gönderilen diğer değişikliklerden sonra uygulanır. Para iade edilmez.

DurumSonuç
Ödenmiş dönem sürüyorcancelled_at dolar, next_payment_at null olur; abonelik dönem sonuna kadar active kalır, sonra cancelled olur.
Süren ödenmiş dönem yokAbonelik hemen cancelled olur.

İptal edilmiş abonelik bir daha değiştirilemez.

SDK örnekleri​

not

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

use Gurmehub\Odemehub\Enum\SubscriptionStatus;
use Gurmehub\Odemehub\Request\UpdateSubscription;

// İptal
$client->updateSubscription(new UpdateSubscription(token: $subscriptionToken, status: SubscriptionStatus::Cancelled));

// Ödeme sayısı sınırını kaldırmak
$client->updateSubscription(new UpdateSubscription(token: $subscriptionToken, clear: ['renewal_limit']));

Yanıt​

retrieve-subscriptions ile aynıdır: result, aboneliğin güncel hâli (subscription) ve customer.

HTTP durum kodları​

KodDurum
200Abonelik değiştirildi (ya da iptal edildi).
401API anahtarı ya da imza geçersiz.
403Çalışma alanı işlem yapamıyor, planı abonelikleri kapsamıyor ya da Abonelikler modülü kapalı.
404Bu abonelik bulunamadı.
422Doğrulama hatası ya da abonelik değiştirilemiyor.
429İstek sınırı aşıldı.

Hatalar​

AlanMesaj
tokenGövdedeki token adresteki token ile aynı olmalı.
tokenSona ermiş abonelik güncellenemez. / Tamamlanmış abonelik güncellenemez. / İptal edilmiş abonelik güncellenemez; ödenmiş dönemin sonunda sona erecek. / Bu abonelik için bekleyen bir ödeme var, tamamlanmasını bekleyin.
subscription.statusAbonelik yalnızca iptal edilebilir (status: "cancelled"); diğer durumlar ödemelere göre kendiliğinden değişir.
subscription.renewal_limitÖdeme sayısı, şimdiye kadar alınan ödeme sayısından az olamaz.
subscriptionÖdemesi alınmış abonelikte yalnızca iptal (status: "cancelled"), ödeme sayısı (renewal_limit), dönem (period) ve kalem fiyatı (items[].unit_amount) güncellenebilir.
subscription.itemsÖdemesi alınmış abonelikte kalemler aynı kalmalıdır; yalnızca birim fiyatı (unit_amount) değiştirilebilir.
subscription.*create-subscription ile aynı alan mesajları.