将自定义变量添加到Omnipay Paypal Express

时间:2017-02-20 03:15:18

标签: laravel laravel-5 paypal laravel-5.2 omnipay

我试过在互联网上到处搜索,无法在那里工作。

我正在尝试将用户ID添加到我的' Paypal_Express'全方位购买。

然而,https://github.com/thephpleague/omnipay-paypal/issues/10中概述的解决方案对我不起作用。它说函数sendData不存在。 $请求 - > setTransactionId();和$ request-> setDescription();也会抛出错误..还有其他人能够做到这一点吗?

$order_paramaters = array(
'amount'       => $grand_total,
);

Omnipay::setParameter('custom', $cart->user_id);
$response = Omnipay::purchase($order_paramaters)->send();

我明白了:

call_user_func_array() expects parameter 1 to be a valid callback, cannot access protected method Omnipay\PayPal\ExpressGateway::setParameter()

也尝试过:

$gateway = Omnipay::create('PayPal_Express');
$gateway->setParameter('custom', $cart->user_id);
$response = $gateway->purchase($order_paramaters)->send();

我明白了:

Call to protected method Omnipay\Common\AbstractGateway::setParameter() from context 'App\Http\Controllers\CartController'

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

我认为不是这样:

$gateway = Omnipay::create('PayPal_Express');
$gateway->setParameter('custom', $cart->user_id);
$response = $gateway->purchase($order_paramaters)->send();

你需要试试这个:

$gateway = Omnipay::create('PayPal_Express');
$purchase = $gateway->purchase($order_paramaters);
$purchase->setParameter('custom', $cart->user_id);
$response = $purchase->send();

即。 custom参数是购买对象的参数,而不是网关对象的参数。