Kullanıcı Sayısı Güncelleme

Aboneliğe ait kullanıcı sayısını güncellemek için kullanılan servistir.

POST https://api.zotlo.com/v1/subscription/change-quantity
Eğer yeni gönderilen değer mevcut değerden yüksek ise, yenileme periyoduna kadar yeni kullanıcı sayısının ödemesi alınmaya çalışılır. Ödeme işlemi başarılı olursa kullanıcı sayısı değiştirilecektir. Eğer daha düşük bir kullanıcı sayısı gönderilirse, yenileme periyodunda yeni kişi sayısı geçerli olacaktır.

Profile servisi için gönderilmesi gereken parametreler şunlardır :

Alan
Açıklama
subscriberId
Kullanıcı sayısının değiştirileceği abone id'si.
packageId
Kullanıcı sayısının değiştirileceği paket id'dir.
quantity
Yeni kullanıcı sayısı. En az 1 değeri gönderilmelidir.

Örnek İstek

Curl
Php
Java
Python
C#
1
curl --location --request POST 'https://api.zotlo.com/v1/subscription/change-quantity' \
2
--header 'AccessKey: ***' \
3
--header 'AccessSecret: ***' \
4
--header 'Content-Type: application/json' \
5
--header 'Language: en' \
6
--header 'ApplicationId: 2' \
7
--data-raw '{
8
"subscriberId":"Z113322",
9
"packageId":"zotlo.premium",
10
"quantity":2
11
}'
Copied!
1
$curl = curl_init();
2
3
curl_setopt_array($curl, array(
4
CURLOPT_URL => "https://api.zotlo.com/v1/subscription/change-quantity",
5
CURLOPT_RETURNTRANSFER => true,
6
CURLOPT_ENCODING => "",
7
CURLOPT_MAXREDIRS => 10,
8
CURLOPT_TIMEOUT => 0,
9
CURLOPT_FOLLOWLOCATION => true,
10
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
11
CURLOPT_CUSTOMREQUEST => "POST",
12
CURLOPT_POSTFIELDS =>"{\n\t\"subscriberId\":\"Z113322\",\n \"packageId\":\"zotlo.premium\",\n\t\"quantity\":2\n}",
13
CURLOPT_HTTPHEADER => array(
14
"AccessKey: ***",
15
"AccessSecret: ***",
16
"Content-Type: application/json",
17
"Language: en",
18
"ApplicationId: 2"
19
),
20
));
21
22
$response = curl_exec($curl);
23
24
curl_close($curl);
25
echo $response;
Copied!
1
OkHttpClient client = new OkHttpClient().newBuilder()
2
.build();
3
MediaType mediaType = MediaType.parse("application/json");
4
RequestBody body = RequestBody.create(mediaType, "{\n\t\"subscriberId\":\"Z113322\",\n \"packageId\":\"zotlo.premium\",\n\t\"quantity\":2\n}");
5
Request request = new Request.Builder()
6
.url("https://api.zotlo.com/v1/subscription/change-quantity")
7
.method("POST", body)
8
.addHeader("AccessKey", "***")
9
.addHeader("AccessSecret", "***")
10
.addHeader("Content-Type", "application/json")
11
.addHeader("Language", "en")
12
.addHeader("ApplicationId", "2")
13
.build();
14
Response response = client.newCall(request).execute();
Copied!
1
import requests
2
3
url = "https://api.zotlo.com/v1/subscription/change-quantity"
4
5
payload = "{\n\t\"subscriberId\":\"Z113322\",\n \"packageId\":\"zotlo.premium\",\n\t\"quantity\":2\n}"
6
headers = {
7
'AccessKey': '***',
8
'AccessSecret': '***',
9
'Content-Type': 'application/json',
10
'Language': 'en',
11
'ApplicationId': '2'
12
}
13
14
response = requests.request("POST", url, headers=headers, data = payload)
15
16
print(response.text.encode('utf8'))
Copied!
1
var client = new RestClient("https://api.zotlo.com/v1/subscription/change-quantity");
2
client.Timeout = -1;
3
var request = new RestRequest(Method.POST);
4
request.AddHeader("AccessKey", "***");
5
request.AddHeader("AccessSecret", "***");
6
request.AddHeader("Content-Type", "application/json");
7
request.AddHeader("Language", "en");
8
request.AddHeader("ApplicationId", "2");
9
request.AddParameter("application/json", "{\n\t\"subscriberId\":\"Z113322\",\n \"packageId\":\"zotlo.premium\",\n\t\"quantity\":2\n}", ParameterType.RequestBody);
10
IRestResponse response = client.Execute(request);
11
Console.WriteLine(response.Content);
Copied!

Servis Cevapları

İşlem Başarılı İse :

1
{
2
"meta": {
3
"requestId": "6d2989e84793-REQ-5f354e9240c23",
4
"httpStatus": 200
5
},
6
"result": {
7
"profile": {
8
"status": "active",
9
"realStatus": "active",
10
"subscriberId": "905555555555",
11
"subscriptionType": "paid",
12
"startDate": "2020-07-27 11:56:16",
13
"expireDate": "2020-10-25 11:56:16",
14
"package": "zotlo.premium",
15
"country": "TR",
16
"phoneNumber": "+905555555555",
17
"language": "tr",
18
"originalTransactionId": "5a4d2db2-7be8-41e7-a6c8-63870762974b",
19
"cancellation": null,
20
"customParameters": null,
21
"quantity": 19,
22
"pendingQuantity": 17
23
},
24
"package": {
25
"packageId": "zotlo.premium",
26
"price": 49,
27
"currency": "USD",
28
"packageType": "subscription",
29
"name": "Zotlo Premium"
30
},
31
"newPackage": null,
32
"card": null,
33
"customer": {
34
"id": 7,
35
"createDate": "2020-05-19 08:54:07",
36
"country": "TR",
37
"firstname": "Test",
38
"lastname": "User",
39
"email": "[email protected]"
40
}
41
}
42
}
Copied!

Başarılı Cevap Parametreleri

Alan
Açıklama
status
Abonenin durumunu verir. active ya da passive değerlerini alabilir. Aktif ise abone haklarını kullanmaya devam edebilir. passive durumunda abonenin hakları sona ermiştir.
realStatus
Abonenin gerçek durumunu verir. active ya da passive değerlerini alabilir. Eğer kullanıcının hesabı bir şekilde iptal olduysa passive döner. Status değerinden farklı, status kullanıcının son kullanma tarihi gelene kadar active dönmeye devam edecektir.
subscriptionType
Kullanıcının aboneliğinin durumunu veren parametredir. trial ya da paid değerlerini alır. trial ise abone henüz deneme süresi içerisindedir. paid olduğunda da kullanıcı ücretli süreye geçmiş ve en az bir kere paket ücreti çekilmiş demektir.
startDate
Aboneliğinin başladı tarih
expireDate
Abonelik bitiş tarihi. Bu tarihte abonelik yenileme işlemleri yapılır. Eğer yapılamazsa abonelik sistem tarafından iptal edilir.
package
Aktif aboneliğinin olduğu paket
country
Kullanıcının ülkesi
language
Kullanıcının dili
cancellation
Eğer "null" ise kullanıcı hesabı aktif durumdadır. Eğer array şeklinde gelirse abonelik iptaline ait detaylar dönülür.
cancellation.date
Aboneliğin iptal edildiği tarih
cancellation.reason
Aboneliğin iptal nedeni
cancellation.code
Zotlo tarafından verilen abonelik iptaline ait durum kodudur. Abonelik iptal durum kodlarını aşağıda bulabilirsiniz.

İptal Durum Kodları

Kod
Açıklama
CP00001
Kullanıcının hesabında otomatik yenileme yapılamadığı için hesap iptal edilmiştir.
CU00001
Kullanıcı hesabını kendi isteği ile iptal etmiştir.
CU00002
İade işleminden sonra sistem tarafından otomatik iptal edilmiştir.

Hata Durumları

Ödeme servislerinden HTTP status code olarak başarılı durumlarda 200 dönmektedir. Başarısız durumlarda ise 400 ya da 500 Http StatusCode dönmektedir. Örnek hata cevabı aşağıdaki şekildedir.
1
{
2
"meta": {
3
"requestId": "MacBook-Pro.local-REQ-5e7da75228368",
4
"httpStatus": 400,
5
"errorMessage": "Kullanıcı abonelik profili bulunamadı.",
6
"errorCode": 400009
7
},
8
"result": []
9
}
Copied!
Cevap
Açıklama
requestId
Her request için sistem tarafından atanan id değeridir. Sistemsel hatalarda loglardan hata yakalamak için kullanılmaktadır.
httpStatus
Hatanın HttpStatusCode değeri
errorMessage
Hata mesajı. Tüm hata kodlarına Hata Kodları menüsünden ulaşabilirsiniz.
errorCode
İlgili hata için Zotlo tarafından verilen hata kodu.
Last modified 2mo ago