向 Omnipay Paypal Express 添加自定义变量

Posted

技术标签:

【中文标题】向 Omnipay Paypal Express 添加自定义变量【英文标题】:Adding custom variable to Omnipay Paypal Express 【发布时间】:2017-07-09 05:17:47 【问题描述】:

我已尝试在 Internet 上到处搜索,但无法找到任何工作。

我正在尝试将用户 ID 添加到我的“Paypal_Express”Omnipay 购买中。

但是https://github.com/thephpleague/omnipay-paypal/issues/10 中概述的解决方案对我不起作用。它说函数 sendData 不存在。 $request->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】:

我认为不是这个:

$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参数是购买对象的参数,不是网关对象的参数。

【讨论】:

以上是关于向 Omnipay Paypal Express 添加自定义变量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 OmniPay 获得 PayPal_Express 响应?

Omnipay - 使用 Paypal Express 结帐 Laravel

使用 Omnipay 在 Paypal Express 中显示账单和运输信息

Omnipay Paypal Express 结帐错误:安全标头无效

如何使用 PHP Omnipay 和 Paypal Express Checkout 验证付款?

PayPal Pro/Express Omnipay Gateway - 信用卡标题无效