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' => '[email protected]',
'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ı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' => '[email protected]',
'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...