- Notifications
You must be signed in to change notification settings - Fork0
Shopier Api Sdk
NotificationsYou must be signed in to change notification settings
shopier/api
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Yazdığınız özel yazılımlarınızaShopier ile Ödeme Alma metodu ekleyebilirsiniz.
Shopier Api Entegrasyonu ile çok kolay bir şekilde entegrasyon sağlayın.
https://github.com/erkineren/shopier
composer require erkineren/shopier
useShopier\Exceptions\NotRendererClassException;useShopier\Exceptions\RendererClassNotFoundException;useShopier\Exceptions\RequiredParameterException;useShopier\Models\Address;useShopier\Models\Buyer;useShopier\Renderers\AutoSubmitFormRenderer;useShopier\Renderers\ButtonRenderer;useShopier\Enums\ProductType;useShopier\Shopier;require'vendor/autoload.php';define('API_KEY','***************');define('API_SECRET','************');$shopier =newShopier(API_KEY,API_SECRET);// Satın alan kişi bilgileri$buyer =newBuyer(['id' =>101,'name' =>'Erkin','surname' =>'Eren','email' =>'eren@erkin.net','phone' =>'8503023601']);// Fatura ve kargo adresi birlikte tanımlama// Ayrı ayrı da tanımlabilir$address =newAddress(['address' =>'Kızılay Mh.','city' =>'Ankara','country' =>'Turkey','postcode' =>'06100',]);// shopier parametlerini al$params =$shopier->getParams();// Satın alan kişi bilgisini ekle$params->setBuyer($buyer);// Fatura ve kargo adresini aynı şekilde ekle$params->setAddress($address);// Sipariş numarsı ve sipariş tutarını ekle$shopier->setOrderData('52003','1.0');// Sipariş edilen ürünü ekle$shopier->setProductData('Test Product', ProductType::DOWNLOADABLE_VIRTUAL);try {/** * Otomarik ödeme sayfasına yönlendiren renderer * * @var AutoSubmitFormRenderer $renderer */$renderer =$shopier->createRenderer(AutoSubmitFormRenderer::class);/** * Shopier İle Güvenli Öde şeklinde butona tıklanınca * ödeme sayfasına yönlendirenn renderer * * @var ButtonRenderer $renderer */$renderer =$shopier->createRenderer(ButtonRenderer::class);$renderer ->withStyle("padding:15px; color: #fff; background-color:#51cbb0; border:1px solid #fff; border-radius:7px") ->withText('Shopier İle Güvenli Öde');$shopier->goWith($renderer);}catch (RequiredParameterException$e) {// Zorunlu parametlerden bir ve daha fazlası eksik}catch (NotRendererClassException$e) {// $shopier->createRenderer(...) metodunda verilen class adı AbstracRenderer sınıfından türetilmemiş !}catch (RendererClassNotFoundException$e) {// $shopier->createRenderer(...) metodunda verilen class bulunamadı !}
Kütüphane içerisinde 2 adet Renderer vardır.
- ButtonRenderer: Butona tıklanınca ödeme sayfasına gider.
$renderer =$shopier->createRenderer(ButtonRenderer::class);$renderer ->withStyle("padding:15px; color: #fff; background-color:#51cbb0; border:1px solid #fff; border-radius:7px") ->withText('Shopier İle Güvenli Öde');$shopier->goWith($renderer);
- AutoSubmitFormRenderer: Sayfa açıldığı gibi ödeme sayfasına gider.
$renderer =$shopier->createRenderer(AutoSubmitFormRenderer::class);$shopier->goWith($renderer);
- Kendi rendererlarınızı oluşturmak için
AbstractRenderer
sınıfından yeni bir sınıf türeterekrender
metoduiçerisine kendi yönlendirme uygulamanızı yazabilirsiniz.
Ödeme sonrası dönüş url'nizdeki sayfa içerisinde (callback/return page) aşağıdaki gösterildiği gibi kontrol yapabilirsiniz.
$isValidPaymentResponse =$shopier->verifyResponse($response_data);
ShopierParams
,Buyer
veAddress
sınıflarıBaseModel
sınıfında türemektedir.ShippingAddress
veBillingAddress
sınıflarıAddress
sınıfından türemektedir.
$params->setBuyer(Buyer::fromArray([...]));$params->setBillingAddress(newAddress([...]));$params->setShippingAddress(newShippingAddress([...]));
BaseModel içerisinde kullanılabilecek kullanışlı metotlar vardır:
publicfunction __construct(array$values = [])publicstaticfunctionfromArray(array$properties)publicfunction toArray() publicfunction toJson()
Kütüphane içerisinde 4 adet enum sınıf bulunmaktadır.
- Curreny
Currency::TLCurrency::USDCurrency::EUR
- Language
Language::TRLanguage::EN
- ProductType
ProductType::REALProductType::DOWNLOADABLE_VIRTUALProductType::DEFAULT_TYPE
- WebsiteIndex
WebsiteIndex::SITE_1WebsiteIndex::SITE_2WebsiteIndex::SITE_3WebsiteIndex::SITE_4WebsiteIndex::SITE_5
- NotRendererClassException:
createRender()
metodu içerisinde gönderilen sınıf AbstractRenderer sınıfından türememiş - RendererClassNotFoundException: `createRender()`` metodu içerisinde gönderilen sınıf bulunamadı
- RequiredParameterException:
ShopierParams
sınıfındaki zorunlu propertylerden bir veya birkaçı boş
İletişim içintıklayınız.
Email:hello@erkin.net