Coder Social home page Coder Social logo

axotion / laravel-dotpay Goto Github PK

View Code? Open in Web Editor NEW
12.0 4.0 11.0 58 KB

Paczka do Laravela umożliwająca wysyłanie danych bezpośrednio po API

License: MIT License

PHP 99.80% Shell 0.08% HTML 0.12%
dotpay-payments dotpay laravel-5-package laravel-package

laravel-dotpay's Introduction

laravel-dotpay

Paczka Dotpay do Laravela 5.x. Pozwala przesyłać dane bezpośrednio przez API zamiast formularza.

Scrutinizer Code Quality Build Status Latest Unstable Version License Total Downloads

Struktura

src/
tests/

Instalacja

Przez composera

$ composer require evilnet/dotpay

lub w przypadku używania aktualnej wersji z mastera (niezalecane jeżeli chcesz używać najbardziej stabilnej wersji która została ujęta w release) dodaj do pliku composera

 "require": {
         "evilnet/dotpay": "dev-master"
     },

Potem zarejestruj usługę i ewentualnie alias by móc używać fasady w config/app.php (Niepotrzebne od Laravela 5.5 i wzwyż)

'providers' => [

     Evilnet\Dotpay\DotpayServiceProvider::class,
 
 
 'aliases' => [
     'Dotpay' => Evilnet\Dotpay\Facades\Dotpay::class

Opublikuj konfguracje i wprowadź w niej potrzebne dane

php artisan vendor:publish --provider="Evilnet\Dotpay\DotpayServiceProvider"

Dodaj wartości do pliku .env

DOTPAY_USERNAME=
DOTPAY_PASSWORD=
DOTPAY_SHOP_ID=
DOTPAY_PIN=
DOTPAY_BASE_URL=https://ssl.dotpay.pl/test_seller/ 

I dodaj swoją metodę do obsługi callbacku jako wyjątek w pliku VerifyCsrfToken (Potrzebne by uderzenia POST z dotpaya nie wymagały tego tokenu)

Środowiska

Produkcyjne: https://ssl.dotpay.pl/s2/login/

Testowe: https://ssl.dotpay.pl/test_seller/

Przykład użycia

namespace App\Http\Controllers;

use Evilnet\Dotpay\DotpayManager;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

class DotpayController extends Controller
{

    private $dotpayManager;

    public function __construct(DotpayManager $dotpayManager)
    {
        $this->dotpayManager = $dotpayManager;
    }
    
    // Tutaj uderzy Dotpay z danymi o tym w jakim stanie jest transakcja. Zwrócenie OK jest wymagane by dotpay przyjął, że serwer odpowiada poprawnie
    
    public function callback(Request $request)
    {
        $response = $this->dotpayManager->callback($request->all());
        
        //Do whatever you want with this
        
        return new Response('OK');
    }

    public function pay()
    {
        $data = [
            'amount' => '100',
            'currency' => 'PLN',
            'description' => 'Payment for internal_id order',
            'control' => '12345', //ID that dotpay will pong you in the answer
            'language' => 'pl',
            'ch_lock' => '1',
            'url' => config('dotpay.options.url'),
            'urlc' => config('dotpay.options.curl'),
            'expiration_datetime' => '2017-12-01T16:48:00',
            'payer' => [
                'first_name' => 'John',
                'last_name' => 'Smith',
                'email' => '[email protected]',
                'phone' => '+48123123123'
            ],
            'recipient' => config('dotpay.options.recipient')

        ];

        return redirect()->to($this->dotpayManager->createPayment($data));
    }
}

Change log

Please see CHANGELOG for more information on what has changed recently.

Testing

$ phpunit vendor/evilnet/dotpay/tests

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

laravel-dotpay's People

Contributors

axotion avatar krystianbajno avatar kubasikorski avatar mgralikowski avatar zmudzinski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

laravel-dotpay's Issues

Refund

Witam,
W jaki sposób mogę wykonać zwrot płatności/refund?

Video

Może nagrasz krótki film jak tego użyć?

[Question] Kiedy i jak wyłapać callback?

Cześć, dzięki za paczkę, bardzo przydatna. :)

Mam szybkie pytania o callback, jeśli możesz podpowiedzieć.

  1. Czy dotpay w trybie testowym wykonuje callbacki?
  2. Jaki routing pod to przygotować? Post, czy get?
  3. W którym momencie płatności wykonywany jest taki callback? Czy mogę w etapie końcowym płatności poczekać aż dotpay wykona curla?

Routes $ CSRF exception

Ścieżki w web.php mam:

    //Dotpay
    Route::get('/dotpay/callback', 'DotpayController@callback')->name('dotpay.callback');
    Route::post('/dotpay/pay', 'DotpayController@pay')->name('dotpay.pay');

Http/Middleware/VerifyCsrfToken

protected $except = [
    'dotpay/pay',
];

Controller jest skopiowany z README paczki.

i ciągle dostaję:

The GET method is not supported for this route. Supported methods: POST.
C:\xampp\htdocs\nazwa\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php#256

Wywoluje testowo tą metodę bezpośrednio w przeglądarce:
http://localhost/nazwa/public/dotpay/pay

Co robię nie tak?

Laravel 6
PHP 7.3

Błąd ładowania interfejsu IRequest przez autoload

Detailed description

Interfejs IRequest jest w katalogu evilnet/dotpay/src/DotpayApi/Contracts, natomiast jego namespace, jak i wszystkie odwołania z innych klas, są do Evilnet\Dotpay\Contracts (czyli bez podkatalogu DotpayApi)

Context

Użycie klasy CreatePaymentLink powoduje błąd nie znalezienia implementowanego interfejsu IRequest.

Possible implementation

Trzeba przenieść katalog Contracts piętro wyżej, do src, to rozwiązuje błąd.

Your environment

Laravel 5.5.

Laravel 6.0

Witam.
Kiedy można spodziewać się wersji dla Laravel 6?

Dotenv\Exception\InvalidCallbackException

Klasa DotpayManager metoda callback rzuca nieistniejący wyjątek: Dotenv\Exception\InvalidCallbackException.

Środowisko

"php": "^7.2.17",
"evilnet/dotpay": "^2.1",
"laravel/framework": "5.8.*",

The POST method is not supported for this route

Witam
Wszystko przebiega prawidłowo tylko jak wracam z ołatnośći do strony mam komunikat
The POST method is not supported for this route i przekierowuje mnie
http://127.0.0.1:8000/?status=OK
Gdzie robię błąd?

Top mój config
...
'options' => [
'url' => 'http://127.0.0.1:8000',
'curl' => 'callback_url',
'recipient' => [
'company' => 'YourCompany',
'address' => [
'street' => 'ssssss',
'building_number' => '11',
'postcode' => '23232',
'city' => "Warszawa"
]
],
]

i co znaczy I dodaj swoją metodę do obsługi callbacku jako wyjątek w pliku VerifyCsrfToken (Potrzebne by uderzenia POST z dotpaya nie wymagały tego tokenu)

Dodanie autoloadera dla wersji 5.5 i wzwyż

Laravel 5.5 wprowadził wsparcie autoładowania paczek bez ręcznego rejestrowania providera. Fajnie by było gdyby ktoś to mógł wprowadzić i przetestować czy dobrze działa.

Sesja po prawidłowej płatności

Mam problem z sesją.
Po wykonaniu płatności i powrotu na stronę sklepu (complete) nie mam dostępu do żadnej sesji.Gdzie leży problem? Czytałem na forach problem z chrome. Ustawiłem w session.php samesite na none i dzialalo i teraz znow to samo.

CreatePaymentLink bez nazwy użytkownika i hasła

Cześć.
Czy jest możliwe wykonanie płatności (CreatePaymentLink) bez podawania nazwy użytkownika i hasła w konfiguracji (dotpay.php i .env) ?

DOTPAY_USERNAME=
DOTPAY_PASSWORD=

Jak zostawię puste jest błąd: 401 Unauthorized response: {"detail":"Authentication credentials were not provided."}

błąd API płatności

Cześć
w logach w dotpay wyskakuje mi cały czas
Required Chk obtained, but hash not equal. Obtained Chk "129f7341be46501c5159a79b24be5a03e5da3d413a2d78da46cdc3ee83eb539d", but expected Chk "564b73246f0dcbfb83aca284184a2162114886074992961368f0144eb0429e9c"
w .env
dodałem tylko nie wiem co wpisac w pin czy przypadkowe liczby czy gdzies jest to ustalone
DOTPAY_PIN=

Constructor call

Hello, sorry for my newbie question but I cant make it work.
When I call the route in Postman it cant even go further than this
GuzzleHttp\Exception\ConnectException: cURL error 6: Could not resolve host: api (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for api/v1/accounts//payment_links/ in file /var/www/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php on line 210
Route::post('/dotpay', 'App\Http\Controllers\DotPayController@pay');

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.