我通过rest-api-sdk(PayPal-PHP-SDK)用php进行PayPal付款。
这是我如何创建付款的小快捷方式:
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$
目前,我将一个项目添加到项列表中,其值为负值(凭证的价值)且没有税。所以账单是这样的:
item1: 10.00$
item2: 20.00$
voucher: -10.00$
taxes: 5.70$
-----------------
total: 25.70$
这是正确/唯一的方法,还是有任何其他可能性可以做到这一点?
是的,这是处理代金券的正确方法。买家可以在结账页面PayPal查看详情商品价值和凭证。