2014-11-10 2 views
0

Я прошу передать заказную цену доставки для экспресс-оплаты PayPal.Laravel/Omnipay paypal, обычная доставка наложенным платежом

Я использую OmniPay и Laravel 4.

Я собираю это возможно как указано в paypal express docs, но не могу заставить его работать с OmniPay Ive пытался следующее:

/*set api details*/ 
$request = $gateway->purchase([ 
    'amount'=> $cart['total'], 
    'currency' => 'GBP', 
    'XXX' => 100 
    'transactionId' => $order->reference, 
    'returnUrl' => $returnURL . '/checkout/success', 
    'cancelUrl' => $returnURL . '/checkout/cancel' 
])->setItems($cart['items'])->send(); 

/*handleResponse*/ 

где XXX является shipping, shippingAmt, shipping_amount, я попробовал добавить стоимость доставки для каждого товара в корзине. Я попытался модифицировать abstractrequest.php класс для добавления на значении доставки вручную следующим образом:

protected function getItemData() 
    { 
     $data = array(); 
     $items = $this->getItems(); 
     if ($items) { 
      foreach ($items as $n => $item) { 
       $data["L_PAYMENTREQUEST_0_NAME$n"] = $item->getName(); 
       $data["L_PAYMENTREQUEST_0_DESC$n"] = $item->getDescription(); 
       $data["L_PAYMENTREQUEST_0_QTY$n"] = $item->getQuantity(); 
       $data["L_PAYMENTREQUEST_0_AMT$n"] = $this->formatCurrency($item->getPrice()); 
      } 
     } 
     $data["L_PAYMENTREQUEST_0_SHIPPINGAMT"] = "3.00"; 
     return $data; 
    } 
+1

В соответствии с кодом свойство называется 'shippingAmount': https://github.com/thephpleague/omnipay-paypal/blob/master/src/Message/AbstractRequest.php#L172 - Так что просто замените «XXX» с «shippingAmount», и вам должно быть хорошо идти. Нет необходимости изменять AbstractRequest, он устанавливается в AuthorizeRequest: https://github.com/thephpleague/omnipay-paypal/blob/master/src/Message/ExpressAuthorizeRequest.php#L39 – Quasdunk

ответ

0

Я нашел answer here

Я использовал старую версию пакета, так что просто необходимо для запуска обновления композитора и могли используйте функцию setShippingAmount();

Смежные вопросы