【发布时间】:2016-06-09 07:49:55
【问题描述】:
我能够使用可重复使用的 postPayment() 方法实现 PaypalController,该方法接受商品及其价格,创建 Paypal 付款,并重定向到 Paypal 付款页面。
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 被其他控制器静态调用。例如,AuthController 可能会在用户注册到我的网站后立即调用它来请求用户付款:
class AuthController extends Controller {
public function postRegister(Request $request) {
return PaypalController::postPayment($items, 'JPY', 'description');
}
}
基本上,PaypalController 将Redirect 返回到AuthController,AuthController 也返回它,以执行到 Paypal 支付页面的重定向。
我想知道这是否是一个好的设计 - 一个控制器调用另一个控制器,是吗?
如果没有,有什么更好的方法来做到这一点?也许将我的代码从 PaypalController 移动到自定义服务提供者、自定义 Helper 或其他东西?我是 Laravel 的新手,希望能得到一些指导。
【问题讨论】:
标签: php laravel paypal laravel-5.1