2017-02-20 3 views
0

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

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

Любая помощь с благодарностью.

ответ

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