Laravel / Omnipay PayPal, передать пользовательскую сумму доставки

0

Я пытаюсь передать заказную цену доставки для экспресс-оплаты 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 отправляется, 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;
    }
Теги:
paypal
paypal-express
omnipay

1 ответ

0

Я нашел ответ здесь

Я использовал более старую версию пакета, поэтому мне просто нужно было выполнить обновление композитора и использовать функцию setShippingAmount();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню