如何在 10 月CMS 中调用组件内的方法


How do call a method inside a component in OctoberCMS?

我不知道这是否可能,或者这是否完全疯狂,但我正在尝试使用 OctoberCMS Ajax 框架从 AJAX 调用执行 PHP 方法(我假设这在它后面使用 jQuery)并且不起作用,因为我永远不会重定向到PayPal站点。我试图工作的PHP代码是这样的:

protected function onExecutePurchaseMethod()
{
    Omnipay::gateway('PayPal_Express');
    $params = [
        'username'  => $this->username,
        'password'  => $this->password,
        'signature' => $this->signature,
        'testMode'  => $this->sandboxMode,
        'amount'    => Session::get('amountToReload'),
        'cancelUrl' => url( 'payment/step4', "", $secure = null ),
        'returnUrl' => url( 'payment/step2', "", $secure = null ),
        'currency'  => 'USD'
    ];
    $response = Omnipay::purchase($params)->send();
    if ($response->isSuccessful()) {
        var_dump($response);
    } else {
        var_dump($response->getMessage());
    }
}

由于没有执行重定向到PayPal并且页面多次卡住,迫使我关闭浏览器并再次重新打开,因此发生了什么,没有执行任何方法,也没有可见的错误。可以做我想做的事情吗?不是疯了吗?如果可能的话,我的错误在哪里?

作为额外的信息,我正在使用Barryvdh Laravel-omnipay软件包来处理Laravel内部的Omnipay。

在简要浏览了文档之后,我最好的猜测是你缺少purchase()方法的必填字段。我相信您需要一个card参数(即使它是无效的)才能对其进行处理。