Yii2 İleti Yönetim Sistemi (IYS) entegrasyonu. Http Request için Guzzle kullanılmıştır.
Bu uzantıyı kurmanın tercih edilen yolu composer aracılığıyladır.
Komutu çalıştır
composer require --prefer-dist mhunesi/yii2-iys "*"
veya
"mhunesi/yii2-iys": "*"
composer.json
dosyanızın gerekli bölümüne ekleyin.
IYS API dokümantasyonu ve dönen istek cevaplarına https://apidocs.iys.org.tr/ adresinden ulaşabilirsiniz.
Not: İYS veya İş ortağı ile çalışıyorsanız yine bu paketi kullanabilirsiniz. Elbette bazı iş ortakları farklı yöntemler izlemiş olabilir.
Uzantı yüklendikten sonra, kodunuzda şu şekilde config dosyanıza ekleyin;
'components' => [
...
'iys' => [
'class' => \mhunesi\iys\Iys::className(),
'url' => 'IYS_URL', // Varsayılan Değer https://api.iys.org.tr
'username' => 'IYS_USERNAME',
'password' => 'IYS_PASSWORD',
'iys_code' => 'IYS_CODE',
'brand_code' => 'IYS_BRAND_CODE', // Ana Marka. Birden fazla marka ile çalışıyorsanız boş geçebilirsiniz.
],
...
],
brand_code
alanını birden fazla marka ile çalışıyorsanız boş geçebilirsiniz. Hangi markanız ile işlem yapacaksanız setBrandCode
metodu ile set edebiliriniz.
/** @var Iys $iys */
$iys = Yii::$app->iys;
$iys->setBrandCode('A Marka Kodu')->consents(); // A Markası İzin İşlemleri
$iys->setBrandCode('B Marka Kodu')->consents(); // B Markası İzin İşlemleri
$iys
Bu metot, alıcıdan alınmış izinlerin tekil olarak İYS'ye yüklenmesine imkan tanır.
/** @var Iys $iys */
$iys = Yii::$app->iys;
$response = $iys->consents()->add([
'consentDate' => '2018-02-10 09:30:00',
'source' => 'HS_CAGRI_MERKEZI',
'recipient' => '+905813334455',
'recipientType' => 'BIREYSEL',
'status' => 'ONAY',
'type' => 'ARAMA',
'retailerCode ' => 11223344,
'retailerAccess' => [
22233344,
44222419,
13239987
]
]);
Bu metot, hizmet sağlayıcıların İYS'de kayıtlı olan izinlerini tekil olarak listelemelerini sağlar.
$response = $iys->consents()->detail(([
'recipient' => '+905813334455',
'recipientType' => 'BIREYSEL',
'type' => 'MESAJ',
]);
Bu metot, alıcıdan alınmış izinlerin yığın olarak İYS'ye yüklenmesine imkan tanır.
$response = $iys->consents()->addBatch([
[
'consentDate' => '2018-02-10 09:30:00',
'source' => 'HS_MESAJ',
'recipient' => '+905813334455',
'recipientType' => 'BIREYSEL',
'status' => 'RET',
'type' => 'ARAMA',
'retailerCode ' => 11223344,
'retailerAccess' => [
22233344,
44222419,
13239987
]
],
[
'consentDate' => '2018-02-10 09:40:00',
'source' => 'HS_WEB',
'recipient' => 'ornek@adiniz.com',
'recipientType' => 'BIREYSEL',
'status' => 'ONAY',
'type' => 'EPOSTA',
'retailerCode ' => 11223344,
'retailerAccess' => [
22233344,
44222419,
13239987
]
],
]);
Bu metot, asenkron çoklu izin ekleme işlemi sonunda dönen işlem sorgulama bilgisiyle izin kayıt isteklerinin sonuçlarını sorgular.
$response = $iys->consents()->requestDetails('73b75030-3a92-4f1e-b247-b0509dbadbfc');
$response = $iys->consents()->changes();
Bu metotla hizmet sağlayıcı hesabınızın altında bulunan markalarınızın listesi elde edilir.
$response = $iys->brands()->all();
İş ortakları, yetkilendirildikleri tüm markaları bu metot aracılığıyla listeler.
$response = $iys->brands()->allIntegratorBrands();
İş ortakları, istek gövdesinde (path param) belirttikleri iysCode değerine ait yetkili oldukları markaları bu metot aracılığıyla listeler.
$response = $iys->brands()->oneIntegratorBrand('1111111');
Hizmet sağlayıcılar 8C44 ın, markalarına izin ekleyebilmesi için İYS aracılığıyla alıcılardan onay isteyebilmesini sağlayan izin ekleme yöntemidir. İYS aracılığıyla izin onayı istenilmesi ve onay verilen iznin markaya eklenebilmesi için iki metot bulunmaktadır.
$response = $iys->consents()->overIys([
'recipient' => 'abc@deneme.com',
'recipientType' => 'BIREYSEL',
'type' => [
"EPOSTA"
],
'source' => 'IYS_EPOSTA'
]);
$response = $iys->consents()->verificationCode([
'requestId' => '111ad006-6210-6axx-oa7c-y672f66e2536',
'verificationCode' => '5AW5XX'
]);
Tüm illeri isim ve kod bilgileriyle birlikte listeler.
$response = $iys->info()->cities();
Sorgulanan ilin bilgisini getirir.
$response = $iys->info()->cityDetails(34);
Tüm ilçeleri bağlı bulundukları illerin kodlarıyla birlikte listeler.
$response = $iys->info()->towns();
Sorgulanan ilin bilgisini getirir.
$response = $iys->info()->townDetails(514);
Yakında...
Yakında...