Добавление пользовательской переменной в Omnipay Paypal Express

Я пробовал искать везде в Интернете и не могу заставить ничего там работать.

Я пытаюсь добавить идентификатор пользователя в свою покупку Omnipay «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'

Любая помощь ОЧЕНЬ оценена.


person Brandon Fredericksen    schedule 20.02.2017    source источник


Ответы (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 является параметром объекта покупки, а не объекта шлюза.

person delatbabel    schedule 21.02.2017