将外部凭证用于PayPal付款


Put external voucher to paypal payment

我通过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查看详情商品价值和凭证。