Abonelik Durumu

Webhooklar aracılığıyla, abonelik durumu değişikliklerini sunucunuza nasıl alacağınızı öğrenin

Bu webhook hizmeti, yeni abonelikler, yenilemeler, durum güncellemeleri veya abonelik iptalleri gibi aboneliklerle ilgili her türlü değişiklik hakkında sizi bilgilendirir.

Endpoint URL'inizi Ayarlayın

Webhook bildirimleri sunucunuza HTTP POST aracılığıyla gönderilir. Endpoint URL'sini projenizin altındaki Developer Tools / Webhooks menüsünden yapılandırabilirsiniz.

Webhook Gönderim Kuralları

Abonelik durum değişikliğini bildiren webhook bildirimi, ilk 5 dakika içinde gönderilir. Gönderim işleminin başarılı olarak kabul edilmesi için sisteminizin HTTP 200 durum kodunu dönmesi gerekmektedir. 200 dışındaki herhangi bir durum kodu, gönderim işleminin başarısız olduğu şeklinde değerlendirilir ve şu deneme süreci uygulanır:

  • Gönderim başarısız olursa, işlem 10 dakika sonra yeniden denenir.

  • İkinci deneme de başarısız olursa, sonraki üç deneme 30 dakika arayla yapılır.

  • Bu üç denemenin ardından da işlem başarısız olursa, bir sonraki deneme 1 saat sonra gerçekleştirilir.

  • Eğer bu denemede de başarı sağlanamazsa, işlem tekrar gönderilmez ve süreç sonlandırılır.

Webhook Bildirimlerinin Formatı

Webhook bildirimleri JSON formatında düzenlenir. Sunucunuza gönderilen POST isteğinin içeriği, düzenlenmiş bildirimin bilgilerini içerir.

{
  "queue": {
    "type": "SubscriberUpdate",
    "eventType": "newSubscriber",
    "requestID": "5a33b022-b877-4888-9eed-89a294640a3c",
    "createDate": {
      "date": "2024-05-13 08:18:22.978000",
      "timezone_type": 3,
      "timezone": "UTC"
    },
    "appId": 1651
  },
  "parameters": {
    "profile": {
      "status": "active",
      "realStatus": "active",
      "subscriberId": "testwebhook@mail.com",
      "subscriptionId": 10414,
      "subscriptionType": "trial",
      "startDate": "2024-05-13 08:18:22",
      "expireDate": "2024-05-16 08:18:22",
      "renewalDate": "2024-05-16 08:18:22",
      "package": "paypal_test",
      "country": "TR",
      "phoneNumber": null,
      "language": "en",
      "originalTransactionId": "bfe87fcd-72f7-4902-88ba-b2695c829590",
      "lastTransactionId": "bfe87fcd-72f7-4902-88ba-b2695c829590",
      "subscriptionPackageType": "single",
      "cancellation": null,
      "customParameters": {
        "clientUuid": "5adf7031-34f3-402b-88fc-2fe8cc87d0af",
        "dataWarehouse": {
          "paymentModule": "generate",
          "siteId": 1088,
          "flowId": 2879,
          "appId": 1094,
          "teamId": 189,
          "acceptPolicy": true
        },
        "utm": {
          "source": null,
          "medium": null,
          "campaign": null,
          "term": null,
          "content": null
        }
      },
      "quantity": 1,
      "pendingQuantity": 0,
      "renewalFetchCount": 0
    },
    "package": {
      "packageId": "paypal_test",
      "price": 1,
      "currency": "TRY",
      "packageType": "subscription",
      "name": "paypal_test",
      "subscriptionPackageType": "single",
      "bundlePackages": []
    },
    "newPackage": null,
    "card": {
      "cardNumber": "41111111****1111",
      "expireDate": "06/2024",
      "tokenId": 11082
    },
    "customer": null,
    "package_update": 0
  }
}

Parametreler

Alan
Açıklama

queue

Webhook türü ve tarihi ile ilgili bilgiler yer alır.

queue.type

İşlem tipini belirtir. Bu webhook türü için her zaman SubscriberUpdate gelir.

queue.eventType

Abonelikle ilgili gerçekleşen güncellemeleri belirtir. Aşağıdaki değerleri alabilir:

  • newSubscriber: Yeni bir abone olduğunu belirtir.

  • Cancel: Aboneliğin iptal edildiğini belirtir.

  • reactivate: Aboneliğin tekrar aktifleştirildiğini belirtir.

  • activeToGrace: Aktif olan abonenin "grace" statüsüne geçtiğini belirtir.

  • graceToActive: "Grace" statüsünde olan abonenin aktif statüye geçtiğini belirtir.

  • graceToPassive: "Grace" statüsünde olan abonenin pasif statüye geçtiğini belirtir.

  • renewal: Aboneliğin yenilendiğini belirtir.

parameters

Webhook'a ait bilginin detayları yer alır.

package

Abonenin aktif ya da son kullandığı pakete bir bilgiler yer alır.

newPackage

Eğer abone paket düşürme işlemi yaptıysa, geçilecek paket bilgileri bu parametre içerisinde gelir. Eğer paket geçişi yoksa null olarak gelmektedir.

customer

Aboneye ait Zotlo üzerinde bulunan bilgilerin gönderildiği parametredir.

card

Kayıtlı kredi kartı bilgilerinin gönderildiği servistir.

profile

Aboneye ait abonelik durumu bitiş tarihi gibi durumların gönderildiği servistir. Buradaki status değerine göre abonenin durumu kontrol edilebilir.

profile.customParameters

Abonelik sırasında aboneye özel parametreler gönderildiyse bu parametre üzerinden ilgili kayıtlar gönderilmektedir. Default değeri null'dır.

profile.quantity

Bir abonelik birden fazla kullanıcıya açıldıysa burada kişi sayısı dönülmektedir. Default değeri 1'dir.

profile.cancellation

Eğer abonelik iptal edilsiyse iptal nedeni ve iptal tarihi bu parametre içerisinde gönderilmektedir. Eğer abonelik iptal edilmediyse null olarak gönderilmektedir. Abonenin iptal durumu bu parametre kontrol edilerek yapılmalıdır.

profile.originalTransactionId

Aboneye ait ilk satınalmanın transactionId değeridir.

profile.subscriptionType

Paid ya da trial değerini alabilir. trial ise abone deneme süresi periyodunda, paid ise de en az 1 ödeme tahsil edilmiş demektir.

profile.subscriberId

Abonelik başlangıcında client tarafından gönderilen aboneye ait uniq id değeridir. Sistemde tüm sorgulamalar bu subscriberId ile yapılmaktadır.

profile.expireDate

Aboneliğin bitiş tarihidir.

profile.package

Abonenin kullandığı aktif paket id'sidir.

profile.status

Aboneye ait durumdur. active, passive ya da grace parametrelerini alabilir. active ise abonelik devam ediyor. passive ise abonelik sonlanmışi grace ise de aboneden ücret çekilemediği için yenileme yapılamamıştır. Abonelik iptali yapan kullanıcılarda expireDate dolana kadar status değeri active olarak gelmektedir.

profile.realStatus

Aboneye ait gerçek durumdur. active parametresinden farklı olarak abonenin geçerli durumunu verir. Abonelik iptali yapan kullanıcılar süresi dolmasa da bu parametrede passive olarak gelmektedir.

profile.country

Aboneye ait ülke kodudur.

profile.phoneNumber

Abonenin sistemde kayıtlı telefon numarasıdır.

package_update

Eğer bildirim paket değişikliğinden sonra gönderiliyorsa 1 değerini almaktadır. Diğer durumlarda 0 gönderilmektedir.

Last updated