React Native SDK

Gereklilikler

Öncekikle Zotlo onboarding ekibi tarafından bir uygulama oluşturulması ve ilgili keylerin alınması gerekmektedir.

Uygulama oluşturma esnasında aşağıdaki bilgiler Zotlo onboarding ekibine iletilmelidir.

#
Açıklama
Domain
Projeye ait web sitesi url'si (production ve test ortamları için ayrı olarak verilebilir.
Logo
Projeye ait logo
RedirectUrl
Web üzerinden login yapılacaksa token için geri dönülecek url bilgisidir. * Mobil uygulama içerisinde kullanılacak olsa bile güvenlik sebebiyle tanımlanmalıdır.

Uygulama tanımlandıktan sonra Zotlo onboarding ekipleri tarafından aşağıdaki bilgiler verilecektir.

#
Açıklama
AccessKey
API servislerine erişim için gereklidir.
AccessSecret
API servislerine erişim için gereklidir.
PublicKey
Zotlo login isteklerinde kullanılması gereken key'dir. * Son kullanıcıların görmesinde bir sakınca yoktur.
Bu bilgiler tanımlandıktan sonra production ve test ortamları için ayrı olacak şekilde uygulamanıza özel bir landing page oluşturulacak ve url bilgileri iletilecektir. Bu sayfalar üzerinden test alımları yapılabilir ve bu bilgiler ile Zotlo login üzerinde işlemlerinizi gerçekleştirebilirsiniz.

Development

Örnek Proje : https://github.com/zotlo/zotlo-websdk-react-native-example

Webview içerisinde login akışının başlatılabilmesi için aşağıdaki Zotlo login linkinin kullanıcılara gösterilmesi gerekmektedir.
Zotlo
Url içerisinde tanımlanan parametrelerin daha önce tanımlanan değerlerde olması gerekmektedir. Farklı değer ile işleme izin verilmeyecektir.

Eğer login işlemi başarılı ise tanımlı RedirectUrl adresine token parametresi ile redirect edilecektir. Bu işlem sırasında uygulamanın bu linki yakalayıp token bilgisini alması gerekmektedir.

Örnek React Native Kod

1
onShouldStartLoadWithRequest={state => {
2
var params = this.parseUrl(state.url);
3
if ('token' in params && params.token != '') {
4
console.log("Single use token: " + params.token);
5
this.setState({showLogin: false})
6
this.setState({token: params.token})
7
return false;
8
} else {
9
return true;
10
}
11
}}
Copied!
Token alındıktan sonra uygulamaya ait backend servisi ile Zotlo API’sinden ilgili token doğrulanmalı ve varsa abonelik hakları kullanıcılara tanımlanmalıdır.

Php Örnek Doğrulama

1
<?php
2
ini_set('display_errors',1);
3
error_reporting(E_ALL);
4
require_once 'vendor/autoload.php';
5
use Zotlo\Connect\Client;
6
use Zotlo\Connect\Entity\Credentials;
7
use Zotlo\Connect\Entity\Request;
8
if (isset($_GET['token']) && !empty($_GET['token']) && !preg_match('#[A-z0-9]{86}#', $_GET['token'])) {
9
echo 'Token hatalı';
10
} else {
11
$config = require 'config.php';
12
$credentials = new Credentials();
13
$credentials->setAccessKey($config->accessKey)->setAccessSecurity($config->accessSecurity)-
14
>setApplicationId($config->appId);
15
$subscriber = new \Zotlo\Connect\Entity\Subscriber();
16
$subscriber->setToken($_GET['token']);
17
$request = new Request();
18
$request->setPlatform('web');
19
$request->setEndpoint($config->apiEndpoint);
20
$request->setLanguage('en');
21
$request->setSslVerify(false);
22
$client = new Client($credentials);
23
$client->subscription()->setSubscriber($subscriber);
24
$client->subscription()->setRequest($request);
25
try {
26
$response = $client->subscription()->getPurchaseList();
27
foreach ($response as $item) {
28
echo '<pre>';
29
print_r($item);
30
echo '</pre>';
31
}
32
} catch (\Zotlo\Connect\Exception\PaymentException $exception) {
33
echo $exception->getErrorCode() . PHP_EOL;
34
echo $exception->getErrorMessage() . PHP_EOL;
35
echo $exception->getHttpStatus() . PHP_EOL;
36
print_r($exception->getMeta());
37
print_r($exception->getResult());
38
print_r($exception->getResult());
39
}
40
}
Copied!
Last modified 2mo ago