• 20-12-2024, 22:03:52
    #1
    Merhabalar,


    Birkaç gün önce yazmaya başladığım "Çoklu Sanal Pos Kütüphanesi" için sanal pos sağlayıcı firmalarının api anahtarları gerekiyor fakat bazı firmalar kurumsal hesap istediği için kayıt olamayıp api anahtarı alamamaktayım, api anahtarı olmadan test ve geliştirme süreçlerini tamamlayamamaktayım. Bu konu'da desteklerinizi bekliyorum. Şuan PayTR, Iyzico, Shopier entegrasyonlarını dahil edebildim.
    Ayrıca eklenmesi gerektiğini belirttiğiniz ödeme sağlayıcıları varsa belirtebilirsiniz.



    https://www.r10.net/php/4309061-php-...tuphanesi.html

    https://github.com/mirarus/virtual-pos

    PHP 7.3 =>
    composer require mirarus/virtual-pos
    Ödeme Başlatma;
    require "vendor/autoload.php";
    
    
    use Mirarus\VirtualPos\Enums\Locale;
    use Mirarus\VirtualPos\Enums\Currency;
    use Mirarus\VirtualPos\Enums\BasketItemType;
    use Mirarus\VirtualPos\Models\Basket;
    use Mirarus\VirtualPos\Models\BasketItem;
    use Mirarus\VirtualPos\Models\Order;
    use Mirarus\VirtualPos\Models\Buyer;
    use Mirarus\VirtualPos\Models\Address;
    use Mirarus\VirtualPos\VirtualPos;
    use Mirarus\VirtualPos\Providers\PayTR;
    use Mirarus\VirtualPos\Providers\Iyzico;
    use Mirarus\VirtualPos\Providers\Shopier;
    
    // PayTR için
    $PayTR = new PayTR();
    $PayTR->setApiId("--api-id--");
    $PayTR->setApiKey("--api-key--");
    $PayTR->setApiSecret("--api-secret--");
    $PayTR->setApiSandbox(true);
    $PayTR->setApiDebug(true);
    $PayTR->setApiSuccessfulUrl("http://localhost/pay-success");
    $PayTR->setApiFailedUrl("http://localhost/pay-failed");
    
    // Iyzico için
    $Iyzico = new Iyzico();
    $Iyzico->setApiKey("--api-key--");
    $Iyzico->setApiSecret("--api-secret--");
    $Iyzico->setApiSandbox(true);
    $Iyzico->setApiReturnUrl("http://localhost/pay-callback");
    
    // Shopier için
    $Shopier = new Shopier();
    $Shopier->setApiKey("--api-key--");
    $Shopier->setApiSecret("--api-secret--");
    $Shopier->setWebSiteIndex(1);
    $Shopier->setApiReturnUrl("http://localhost/pay-callback");
    
    
    // Ortak Kullanım - Müşteri Bilgileri
    $buyer = new Buyer();
    $buyer->setId(1);
    $buyer->setName("John Doe");
    $buyer->setSurname("Smith");
    $buyer->setEmail("john@doe.com");
    $buyer->setPhone("905000000000");
    $buyer->setIdentityNumber("11111111111");
    
    
    // Ortak Kullanım - Müşteri Adres Bilgileri
    $address = new Address();
    $address->setAddress("... Mah. ... Sok. No: ...");
    $address->setState("Keçiören");
    $address->setCity("Ankara");
    $address->setCountry("Turkey");
    $address->setZipCode("06000");
    
    // setInstallment Harici, Ortak Kullanım - Sipariş Bilgileri
    $order = new Order();
    $order->setId(10000);
    $order->setPrice(10);
    $order->setLocale(Locale::TR);
    $order->setCurrency(Currency::TL);
    $order->setInstallment(1); // Taksit Sayısı (PayTR için)
    $order->setInstallments([1]); // Taksit Sayıları (Iyzico için)
    
    // Ortak Kullanım - Sepet İçeriği
    $basketItem = new BasketItem();
    $basketItem->setId(1);
    $basketItem->setName("Ayakkabı");
    $basketItem->setPrice("10.30");
    $basketItem->setQuantity(1);
    $basketItem->setCategory("Giyim");
    $basketItem->setType(BasketItemType::PHYSICAL);
    
    // Ortak Kullanım - Sepet Bilgileri
    $basket = new Basket();
    $basket->setBasketItem($basketItem); // Sepet İçeriği (Shopier için ilk tanımlanan basketItem geçerli olacaktır)
    
    // Sınıf Başlatma
    $virtualPos = new VirtualPos();
    $virtualPos->setProvider($PayTR); // $PayTR, $Iyzico veya $Shopier
    $virtualPos->setBuyer($buyer);
    $virtualPos->setAddress($address);
    $virtualPos->setOrder($order);
    $virtualPos->setBasket($basket);
    
    // Ödeme Formu Oluştur
    echo $virtualPos->createPaymentForm();


    Geri Dönüş Bildirimi / Callback;
    require "vendor/autoload.php";
    
    use Mirarus\VirtualPos\VirtualPos;
    use Mirarus\VirtualPos\Providers\PayTR;
    use Mirarus\VirtualPos\Providers\Iyzico;
    use Mirarus\VirtualPos\Providers\Shopier;
    
    
    // PayTR için
    $PayTR = new PayTR();
    $PayTR->setApiKey("--api-key--");
    $PayTR->setApiSecret("--api-secret--");
    
    
    // Iyzico için
    $Iyzico = new Iyzico();
    $Iyzico->setApiKey("--api-key--");
    $Iyzico->setApiSecret("--api-secret--");
    $Iyzico->setApiSandbox(true);
    
    
    // Shopier için
    $Shopier = new Shopier();
    $Shopier->setApiSecret("--api-secret--");
    
    // Sınıf Başlatma
    $virtualPos = new VirtualPos();
    $virtualPos->setProvider($PayTR); // $PayTR, $Iyzico veya $Shopier
    
    
    // CallBack İşlemi - DB İşlemleri vs. yapılabilir, Return Gönderilemez
    $createCallback = $virtualPos->createCallback(function($data) {
    // data: [orderId, status, paymentData]
    // PayTR callback tarafında gönderilmesi istenen OK ifadesi dahili olarak aktarılmaktadır.
    
    print_r($data);
    // CallBack Proccess
    });
  • 20-12-2024, 22:07:57
    #2
    mirarus adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,


    Birkaç gün önce yazmaya başladığım "Çoklu Sanal Pos Kütüphanesi" için sanal pos sağlayıcı firmalarının api anahtarları gerekiyor fakat bazı firmalar kurumsal hesap istediği için kayıt olamayıp api anahtarı alamamaktayım, api anahtarı olmadan test ve geliştirme süreçlerini tamamlayamamaktayım. Bu konu'da desteklerinizi bekliyorum. Şuan PayTR, Iyzico, Shopier entegrasyonlarını dahil edebildim.
    Ayrıca eklenmesi gerektiğini belirttiğiniz ödeme sağlayıcıları varsa belirtebilirsiniz.



    https://www.r10.net/php/4309061-php-...tuphanesi.html

    https://github.com/mirarus/virtual-pos

    PHP 7.3 =>
    composer require mirarus/virtual-pos
    Ödeme Başlatma;
    require "vendor/autoload.php";
    
    
    use Mirarus\VirtualPos\Enums\Locale;
    use Mirarus\VirtualPos\Enums\Currency;
    use Mirarus\VirtualPos\Enums\BasketItemType;
    use Mirarus\VirtualPos\Models\Basket;
    use Mirarus\VirtualPos\Models\BasketItem;
    use Mirarus\VirtualPos\Models\Order;
    use Mirarus\VirtualPos\Models\Buyer;
    use Mirarus\VirtualPos\Models\Address;
    use Mirarus\VirtualPos\VirtualPos;
    use Mirarus\VirtualPos\Providers\PayTR;
    use Mirarus\VirtualPos\Providers\Iyzico;
    use Mirarus\VirtualPos\Providers\Shopier;
    
    // PayTR için
    $PayTR = new PayTR();
    $PayTR->setApiId("--api-id--");
    $PayTR->setApiKey("--api-key--");
    $PayTR->setApiSecret("--api-secret--");
    $PayTR->setApiSandbox(true);
    $PayTR->setApiDebug(true);
    $PayTR->setApiSuccessfulUrl("http://localhost/pay-success");
    $PayTR->setApiFailedUrl("http://localhost/pay-failed");
    
    // Iyzico için
    $Iyzico = new Iyzico();
    $Iyzico->setApiKey("--api-key--");
    $Iyzico->setApiSecret("--api-secret--");
    $Iyzico->setApiSandbox(true);
    $Iyzico->setApiReturnUrl("http://localhost/pay-callback");
    
    // Shopier için
    $Shopier = new Shopier();
    $Shopier->setApiKey("--api-key--");
    $Shopier->setApiSecret("--api-secret--");
    $Shopier->setWebSiteIndex(1);
    $Shopier->setApiReturnUrl("http://localhost/pay-callback");
    
    
    // Ortak Kullanım - Müşteri Bilgileri
    $buyer = new Buyer();
    $buyer->setId(1);
    $buyer->setName("John Doe");
    $buyer->setSurname("Smith");
    $buyer->setEmail("john@doe.com");
    $buyer->setPhone("905000000000");
    $buyer->setIdentityNumber("11111111111");
    
    
    // Ortak Kullanım - Müşteri Adres Bilgileri
    $address = new Address();
    $address->setAddress("... Mah. ... Sok. No: ...");
    $address->setState("Keçiören");
    $address->setCity("Ankara");
    $address->setCountry("Turkey");
    $address->setZipCode("06000");
    
    // setInstallment Harici, Ortak Kullanım - Sipariş Bilgileri
    $order = new Order();
    $order->setId(10000);
    $order->setPrice(10);
    $order->setLocale(Locale::TR);
    $order->setCurrency(Currency::TL);
    $order->setInstallment(1); // Taksit Sayısı (PayTR için)
    $order->setInstallments([1]); // Taksit Sayıları (Iyzico için)
    
    // Ortak Kullanım - Sepet İçeriği
    $basketItem = new BasketItem();
    $basketItem->setId(1);
    $basketItem->setName("Ayakkabı");
    $basketItem->setPrice("10.30");
    $basketItem->setQuantity(1);
    $basketItem->setCategory("Giyim");
    $basketItem->setType(BasketItemType::PHYSICAL);
    
    // Ortak Kullanım - Sepet Bilgileri
    $basket = new Basket();
    $basket->setBasketItem($basketItem); // Sepet İçeriği (Shopier için ilk tanımlanan basketItem geçerli olacaktır)
    
    // Sınıf Başlatma
    $virtualPos = new VirtualPos();
    $virtualPos->setProvider($PayTR); // $PayTR, $Iyzico veya $Shopier
    $virtualPos->setBuyer($buyer);
    $virtualPos->setAddress($address);
    $virtualPos->setOrder($order);
    $virtualPos->setBasket($basket);
    
    // Ödeme Formu Oluştur
    echo $virtualPos->createPaymentForm();


    Geri Dönüş Bildirimi / Callback;
    require "vendor/autoload.php";
    
    use Mirarus\VirtualPos\VirtualPos;
    use Mirarus\VirtualPos\Providers\PayTR;
    use Mirarus\VirtualPos\Providers\Iyzico;
    use Mirarus\VirtualPos\Providers\Shopier;
    
    
    // PayTR için
    $PayTR = new PayTR();
    $PayTR->setApiKey("--api-key--");
    $PayTR->setApiSecret("--api-secret--");
    
    
    // Iyzico için
    $Iyzico = new Iyzico();
    $Iyzico->setApiKey("--api-key--");
    $Iyzico->setApiSecret("--api-secret--");
    $Iyzico->setApiSandbox(true);
    
    
    // Shopier için
    $Shopier = new Shopier();
    $Shopier->setApiSecret("--api-secret--");
    
    // Sınıf Başlatma
    $virtualPos = new VirtualPos();
    $virtualPos->setProvider($PayTR); // $PayTR, $Iyzico veya $Shopier
    
    
    // CallBack İşlemi - DB İşlemleri vs. yapılabilir, Return Gönderilemez
    $createCallback = $virtualPos->createCallback(function($data) {
    // data: [orderId, status, paymentData]
    // PayTR callback tarafında gönderilmesi istenen OK ifadesi dahili olarak aktarılmaktadır.
    
    print_r($data);
    // CallBack Proccess
    });
    Zaten test bilgileri bulunur döküman bölümünde size tavsiyem güvenilir firmaları kütüphanenize ekleyin
  • 20-12-2024, 22:11:13
    #3
    nordmedya adlı üyeden alıntı: mesajı görüntüle
    Zaten test bilgileri bulunur döküman bölümünde size tavsiyem güvenilir firmaları kütüphanenize ekleyin
    Hocam test süreci için gerekiyor, Guzzle/Request kütüphanesi haricinde kütüphane kullanmamaktayım.

    örn iyziconun kendine ait kütüphanesini sisteme dahil etmiyorum, çünkü request tarafınıda yazmaktayım, bu nedenle api kısımlarını detaylı test etmeliyim.
  • 20-12-2024, 22:15:34
    #4
    mirarus adlı üyeden alıntı: mesajı görüntüle
    Hocam test süreci için gerekiyor, Guzzle/Request kütüphanesi haricinde kütüphane kullanmamaktayım.

    örn iyziconun kendine ait kütüphanesini sisteme dahil etmiyorum request tarafınıda yazmaktayım, bu nedenle api kısımlarını detaylı test etmeliyim.
    Tamm bunun için test api sağlıyor lar zaten kurumsal üye değilseniz ve döküman bölümünde ise yok sa eğer TC kimlik numaranızı kullanın vergi kısmında firma adına da adınızı soyadınızı yazın daha onay alamadığı için test hesabı aktif konumda olur veya destek mail ı atarak öğrenebilirsiniz biz stripe da paytr vs de öyle yaparız baktık başka çare kalmıyor telefonla iletişime geçeriz oda olmaz ise ucuza şahıs şirketi açıp o şekilde halledilir