// 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 // we need that for payment verify $authority = $response->get('authority'); // zarinpal provider response has this filed too. // Redirect user to payment page header('Location: ' . $response->getPaymentUrl()); // save response $data any where, you need these for payment verify /** * @var $provider \Laratalks\PaymentGateways\Providers\Soap\ZarinpalProvider */ $provider = $manager->provider('zarinpal');