public function testMagicMethods() { $manager = new GatewayManager($this->config); $manager->extend('example', function () { return new ExampleProvider(); }); $manager->setDefaultProvider('example'); $response = $manager->callPaymentRequest(new \Laratalks\PaymentGateways\ValueObjects\PaymentRequestNeeds()); $this->assertTrue($response instanceof PaymentRequestResponse); }
* you can create new PaymentRequestNeeds * and customize it for your own provider * * for more information read Default payment providers */ $requestNeeds = new PaymentRequestNeeds(); $requestNeeds->setAmount(1000); $requestNeeds->setReturnUrl('YOUR_CALLBACK_URL'); $requestNeeds->set('attr', 'value'); // Call with provider name // by this, you can change provider on-the-fly $manager->provider('example')->callPaymentRequest($requestNeeds); // OR set provider as default provider // this set example as default provider // and you can call provider methods directly from manager $manager->setDefaultProvider('example'); $response = $manager->callPaymentRequest($requestNeeds); $verifyNeeds = new PaymentNeeds(); $verifyNeeds->set('amount', 1000); $verifyNeeds->set('payment_id', 15415648); $response = $manager->callPaymentVerify($verifyNeeds); // Zarinpal example $provider = $manager->provider('zarinpal'); // create payment request: $requestNeeds = new PaymentRequestNeeds(); $requestNeeds->setAmount(1000)->setReturnUrl('http://some_url')->set('description', 'some description')->set('mobile', 'YOUR_PHONE_NUMBER')->set('email', 'YOUR_EMAIL_ADDRESS'); // optional $response = $manager->provider('zarinpal')->callPaymentRequest($requestNeeds); $redirectUrl = $response->getPaymentUrl(); // each request responses has this method // save the Authority to database