Я делаю PayPal-платеж с помощью php через rest-api-sdk (PayPal-PHP-SDK).Положить внешний ваучер на оплату платежа
Вот небольшой ярлык, как создать платеж:
foreach ($positions as $position) {
$item = new Item();
$item->setName($position->getPosition_id() . " " . $position->getPosition_typ());
$item->setCurrency($currency);
$item->setQuantity(1);
$item->setPrice($position->getItemPrice())
$item->setTax($position->getMwst_wert());
array_push($itemArray, $item);
}
$subtotal = ($subtotal);
$itemList->setItems($itemArray);
$details->setTax($fullTaxes);
$details->setSubtotal($subtotal);
$details->setShipping(0.0);
$amount->setCurrency($currency);
$amount->setTotal($total);
$amount->setDetails($details);
$transaction->setAmount($amount);
$transaction->setItemList($itemList);
$transaction->setDescription("Payment for #".$paymentId);
$transaction->setInvoiceNumber(uniqid());
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl("$baseUrl&success=true")
->setCancelUrl("$baseUrl&success=false");
$payment->setIntent(self::PAYMENT_INTENT_SALE);
$payment->setPayer($payer);
$payment->setRedirectUrls($redirectUrls);
$payment->setTransactions(array($transaction));
$payment->create($apiContext);
Теперь клиент может оплатить часть полной оплаты с ваучером (не PayPal ваучера). Поэтому перед тем, как клиент нажимает кнопку на моей странице для оплаты с помощью PayPal, он вводит код ваучера.
Мой вопрос сейчас, как сказать PayPal, что часть платежа уже оплачена ваучером? Так что этот законопроект, как:
item1: 10.00$
item2: 20.00$
taxes: 5.70$
------------------
total: 35.70$
voucher: -10.00$
------------------
to pay: 25.70$
На данный момент я добавить товар в ITEMLIST с отрицательным значением (значение ваучера) и без каких-либо налогов. Так что этот законопроект, как:
item1: 10.00$
item2: 20.00$
voucher: -10.00$
taxes: 5.70$
-----------------
total: 25.70$
Это право/единственный путь, и есть ли другая возможность сделать это дело?