I was able to implement a PaypalController
, with a reusable postPayment()
method, which accepts items and their prices, and creates a Paypal payment, and redirects to a Paypal payment page.
class PaypalController extends Controller {
private static $_api_context;
private static function initialize() {
//initialize api context
}
public static function postPayment($items, $currency, $description) {
self::initialize();
//create item list, transaction, payment objects, etc
$payment->create(PaypalController::$_api_context);
...
return redirect()->away($redirect_url); // redirect to paypal
}
}
PaypalController
is called statically by other controllers. For example, the AuthController
might call it to request payment from the user right after the user registers to my site:
class AuthController extends Controller {
public function postRegister(Request $request) {
return PaypalController::postPayment($items, 'JPY', 'description');
}
}
Basically, PaypalController
returns a Redirect
to AuthController
, which also returns it, to perform the redirect to the Paypal payment page.
I was wondering if this is a good design - a controller calling a different controller, is it?
If not, what would be a better way to do this? Maybe move my code from PaypalController into custom Service Provider, or custom Helper, or something else? I am very new to Laravel, and I would appreciate some guidance.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire