Restore Doğrulama

Restore isteği servisinden gelen requestId ile restore durumunun sorgulanabileceği servistir.

GET https://api.zotlo.com/v1/restore/verification?requestId=a5c736d2-7033-4cd0-a98e-c4173a7d18c3
Kullanıcı eğer OTP işlemini başarılı ile geçtiyse bu servis üzerinden kullanıcıya ait abonelikler dönülmektedir. OTP işlemi başarısız ise ya da hiç yapılmadıysa servis 400 statusCode dönmektedir.
Alan
Açıklama
requestId
Restore isteği servisinden gelen requestId bilgisinin gönderilmesi gerekmektedir. Eğer requestId ile oluşan OTP isteği başarılı şekilde tamamlanmışsa, bu servis üzerinden abonelik bilgileri dönülmektedir.

Örnek İstek

Curl
Php
Swift
Java
Python
C#
1
curl --location --request GET 'https://api.zotlo.com/v1/restore/verification?requestId=a5c736d2-7033-4cd0-a98e-c4173a7d18c3' \
2
--header 'AccessKey: ***' \
3
--header 'AccessSecret: ***' \
4
--header 'Content-Type: application/json' \
5
--header 'ApplicationId: 6' \
6
--header 'Language: tr'
Copied!
1
$curl = curl_init();
2
3
curl_setopt_array($curl, array(
4
CURLOPT_URL => "https://api.zotlo.com/v1/restore/verification?requestId=a5c736d2-7033-4cd0-a98e-c4173a7d18c3",
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 => "GET",
12
CURLOPT_HTTPHEADER => array(
13
"AccessKey: ***",
14
"AccessSecret: ***",
15
"Content-Type: application/json",
16
"ApplicationId: 6",
17
"Language: tr"
18
),
19
));
20
21
$response = curl_exec($curl);
22
23
curl_close($curl);
24
echo $response;
Copied!
1
import Foundation
2
3
var semaphore = DispatchSemaphore (value: 0)
4
5
var request = URLRequest(url: URL(string: "https://api.zotlo.com/v1/restore/verification?requestId=a5c736d2-7033-4cd0-a98e-c4173a7d18c3")!,timeoutInterval: Double.infinity)
6
request.addValue("***", forHTTPHeaderField: "AccessKey")
7
request.addValue("***", forHTTPHeaderField: "AccessSecret")
8
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
9
request.addValue("6", forHTTPHeaderField: "ApplicationId")
10
request.addValue("tr", forHTTPHeaderField: "Language")
11
12
request.httpMethod = "GET"
13
14
let task = URLSession.shared.dataTask(with: request) { data, response, error in
15
guard let data = data else {
16
print(String(describing: error))
17
return
18
}
19
print(String(data: data, encoding: .utf8)!)
20
semaphore.signal()
21
}
22
23
task.resume()
24
semaphore.wait()
Copied!
1
OkHttpClient client = new OkHttpClient().newBuilder()
2
.build();
3
Request request = new Request.Builder()
4
.url("https://api.zotlo.com/v1/restore/verification?requestId=a5c736d2-7033-4cd0-a98e-c4173a7d18c3")
5
.method("GET", null)
6
.addHeader("AccessKey", "***")
7
.addHeader("AccessSecret", "***")
8
.addHeader("Content-Type", "application/json")
9
.addHeader("ApplicationId", "6")
10
.addHeader("Language", "tr")
11
.build();
12
Response response = client.newCall(request).execute();
Copied!
1
import requests
2
3
url = "https://api.zotlo.com/v1/restore/verification?requestId=a5c736d2-7033-4cd0-a98e-c4173a7d18c3"
4
5
payload = {}
6
headers = {
7
'AccessKey': '***',
8
'AccessSecret': '***',
9
'Content-Type': 'application/json',
10
'ApplicationId': '6',
11
'Language': 'tr'
12
}
13
14
response = requests.request("GET", url, headers=headers, data = payload)
15
16
print(response.text.encode('utf8'))
Copied!
1
var client = new RestClient("https://api.zotlo.com/v1/restore/verification?requestId=a5c736d2-7033-4cd0-a98e-c4173a7d18c3");
2
client.Timeout = -1;
3
var request = new RestRequest(Method.GET);
4
request.AddHeader("AccessKey", "***");
5
request.AddHeader("AccessSecret", "***");
6
request.AddHeader("Content-Type", "application/json");
7
request.AddHeader("ApplicationId", "6");
8
request.AddHeader("Language", "tr");
9
IRestResponse response = client.Execute(request);
10
Console.WriteLine(response.Content);
Copied!

Servis Cevabı

1
{
2
"meta": {
3
"requestId": "6d2989e84793-REQ-5f3be6400477d",
4
"httpStatus": 200
5
},
6
"result": {
7
"restore": [
8
{
9
"appId": 5,
10
"teamId": 5,
11
"requestId": "27a67c7e-b780-4786-8fa7-e795230206d7",
12
"webhookUrl": "https://subscription.zotlo.com/webhook",
13
"formUrl": "https://pay3d.zotlo.com/restore/27a67c7e-b780-4786-8fa7-e795230206d7",
14
"language": "en",
15
"otpVerification": true,
16
"otpPhoneNumber": "+905555555555",
17
"otpVerificationCode": "JF16iMOZLTGqgYq",
18
"subscriptions": [
19
{
20
"subscriberId": "1",
21
"packageId": "zotlo.premium",
22
"status": "active",
23
"startDate": "2020-05-28 15:50:50",
24
"expireDate": "2020-09-03 01:18:59"
25
},
26
{
27
"subscriberId": "2",
28
"packageId": "zotlo.proxy",
29
"status": "active",
30
"startDate": "2020-07-23 14:56:11",
31
"expireDate": "2020-08-22 14:56:11"
32
}
33
34
]
35
}
36
]
37
}
38
}
Copied!

Başarılı Cevap Parametreleri

Alan
Açıklama
otpVerification
Eğer true ise OTP doğrulama işlemi başarıyla tamamlanmış demektir.
otpPhoneNumber
Kullanıcının doğruladığı ve sistemde bulunan aboneliklerin getirildiği telefon numarasıdır.
subscriptions
Zotlo üzerinde kullanıcıya ait aboneliklerin özet bilgileridir. Bir numaraya ait birden fazla abonelik olabilmektedir.

Restore İşlemi Sonucunda Webhook İle Gönderilen Data

1
{
2
"queue": {
3
"type": "Restore",
4
"createDate": "2020-08-18 10:48:30",
5
"appId": "5"
6
},
7
"parameters": {
8
"appId": 5,
9
"teamId": 5,
10
"requestId": "85a6fb73-4148-4c30-a8a2-3b7282f68687",
11
"webhookUrl": "https://webhook.site/2f3eb612-5099-4c4f-88fd-aec2b882e33e",
12
"formUrl": "https://pay3d.zotlo.com:39443/restore/85a6fb73-4148-4c30-a8a2-3b7282f68687",
13
"language": "tr",
14
"otpVerification": true,
15
"otpPhoneNumber": "+905555555555",
16
"subscriptions": [
17
{
18
"subscriberId": "1",
19
"packageId": "zotlo.premium",
20
"status": "active",
21
"startDate": "2020-05-28 15:50:50",
22
"expireDate": "2020-09-03 01:18:59"
23
},
24
{
25
"subscriberId": "2",
26
"packageId": "zotlo.proxy",
27
"status": "active",
28
"startDate": "2020-07-23 14:56:11",
29
"expireDate": "2020-08-22 14:56:11"
30
}
31
32
]
33
}
34
}
Copied!

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": "6d2989e84793-REQ-5f3be480b02fb",
4
"httpStatus": 400,
5
"errorMessage": "RequestId is not verification!",
6
"errorCode": "400032"
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