PayPal Plus - 沙盒模式下没有“按发票付款”

Posted

技术标签:

【中文标题】PayPal Plus - 沙盒模式下没有“按发票付款”【英文标题】:PayPal Plus - No "Pay upon Invoice" in Sandbox mode 【发布时间】:2017-12-25 23:02:00 【问题描述】:

我正在尝试使用 REST API SDK 将 Paypal Plus 集成到在线商店中,到目前为止一切正常。只是缺少“按发票付款”选项。 有趣的是:两周前它还在工作。据我所知,剧本没有任何变化。

按照PayPal Plus Sandbox - Pay upon Invoice 中的建议,我尝试在显示付费专区之前修补付款。我尝试将送货地址添加到项目列表中。我确定,送货地址确实存在。甚至升级了 SDK。我没有想法。

这就是我的 php 代码的样子:

$items = array();
$item = new PayPal\Api\Item();
$item->setName("test")
     ->setDescription("test")
     ->setCurrency('EUR')
     ->setQuantity(1)
     ->setPrice(5);
$items[] = $item;

$itemList = new PayPal\Api\ItemList();
$itemList->setItems($items);

$details = new PayPal\Api\Details();
$details->setTax(0.95)
        ->setSubtotal(5);
$amount = new PayPal\Api\Amount();
$amount->setCurrency("EUR")
       ->setTotal(5.95)
       ->setDetails($details);

$transaction = new PayPal\Api\Transaction();
$transaction->setAmount($amount)
            ->setItemList($itemList)
            ->setDescription("Test")
            ->setInvoiceNumber(uniqid());

$payer = new PayPal\Api\Payer();
$payer->setPaymentMethod("paypal");

$redirectUrls = new PayPal\Api\RedirectUrls();
$redirectUrls->setReturnUrl($CFG["paypal_return"]);
$redirectUrls->setCancelUrl($CFG["paypal_abbruch"]);

$payment = new PayPal\Api\Payment();
$payment->setIntent("sale")
        ->setPayer($payer)
        ->setRedirectUrls($redirectUrls)
        ->setTransactions(array($transaction));

try 
    $payment->create($apiContext);
    $approvalUrl = $payment->getApprovalLink();
    $paymentId = $payment->getId();
 catch (PayPal\Exception\PayPalConnectionException $ex) d($ex);
    die("Error creating payment");

下面是我的 html/JS:

<div id="ppplus"></div>
<script src="https://www.paypalobjects.com/webstatic/ppplus/ppplus.min.js" type="text/javascript"></script>
<script type="application/javascript">
    var ppp = PAYPAL.apps.PPP(
        "approvalUrl": "<?=$approvalUrl?>",
        "placeholder": "ppplus",
        "mode": "sandbox",
        "showPuiOnSandbox": "true",
        "country": "DE",
        "language": "de_DE",
        "surcharging": true,
        "useraction": "commit",
        "buttonLocation": "outside"
    );
</script>

有没有人有一个想法,这可能会奏效?

【问题讨论】:

问题自行解决了。出于某种原因,“按发票付款”选项再次显示在付费专区中。抱歉,任何人都在寻找答案。 【参考方案1】:

默认情况下,总金额在 1.50 到 1470 欧元之间时提供发票付款。

https://developer.paypal.com/docs/paypal-plus/germany/how-to/pay-upon-invoice/

要在 Sandbox 中测试发票付款,您可以通过将以下参数添加到配置对象来启用 PLUS 中的付款方式: showPuiOnSandbox: "true",

https://www.paypalobjects.com/digitalassets/c/website/marketing/emea/de/de/paypal-plus-center/PayPal_PLUS_integration_guide.pdf

【讨论】:

以上是关于PayPal Plus - 沙盒模式下没有“按发票付款”的主要内容,如果未能解决你的问题,请参考以下文章

沙盒模式下的 Magento + Paypal Express 结帐

沙盒测试模式下 Android 中的 Paypal 支付网关集成问题

沙盒模式下未触发 PayPal Webhook 事件

Paypal 信用卡未在沙盒模式下显示

PayPal 在沙盒模式下不适用于 WooCommerce [关闭]

不使用沙盒的 PayPal 测试