New to the community? Welcome! Please read our Community Rules and Guidelines
If you want to report illegal content under the EU Digital Services Act, please do so here
Hallo,
i need some help with the code by integrating PayPal Plus with REST API. I have read the PayPal PDF, but it don't work or i don't understand.
At the end, the customer shall select the pay method!
(If i redirect after the call to PayPal, then the pay method is PayPal.)
Here is my PayPal Plus method (is an modified example from paypal):
public static function paypalplus() { // Set clientId and secret self::loadPayment(); $payer = new PayPal\Api\Payer(); $payer->setPaymentMethod("paypal"); $item1 = new PayPal\Api\Item(); $item1->setName('Ground Coffee 40 oz') ->setDescription('Ground Coffee 40 oz') ->setCurrency('EUR') ->setQuantity(1) ->setTax(0.3) ->setPrice(7.50); $itemList = new PayPal\Api\ItemList(); $itemList->setItems(array($item1)); $details = new PayPal\Api\Details(); $details->setShipping(1.2) ->setTax(0.3) ->setSubtotal(7.5); $amount = new PayPal\Api\Amount(); $amount->setCurrency("EUR") ->setTotal(9) ->setDetails($details); $transaction = new PayPal\Api\Transaction(); $transaction->setAmount($amount) ->setItemList($itemList) ->setDescription("Payment description."); $baseUrl = 'http://mypage.com'; $redirectUrls = new PayPal\Api\RedirectUrls(); $redirectUrls->setReturnUrl("$baseUrl/ExecutePayment.php?success=true") ->setCancelUrl("$baseUrl/ExecutePayment.php?success=false"); $payment = new PayPal\Api\Payment(); $payment->setIntent("sale") ->setPayer($payer) ->setRedirectUrls($redirectUrls) ->setTransactions(array($transaction)); $request = clone $payment; try { $result = $payment->create(self::$apiContext); } catch (Exception $ex) { echo 'Authorize a Payment'; var_dump($payment->getId(), $ex); exit(1); } echo 'Authorize a Payment ID: ' . $payment->getId(); echo "<br><br>"; $redirectUrl = ""; foreach ($payment->getLinks() as $link) { if ($link->getRel() == 'approval_url') $redirectUrl = $link->getHref(); } if (strlen($redirectUrl)) echo '<a href="'.$redirectUrl.'">'.$redirectUrl.'</a>'; // $transactions = $payment->getTransactions(); // $relatedResources = $transactions[0]->getRelatedResources(); // var_dump($result); // $authorization = $relatedResources[0]->getAuthorization(); // // var_dump($authorization); }
In the same PHP Requet (after the method call), i output the PayPal JavaScript (IFrame):
<script src="https://www.paypalobjects.com/webstatic/ppplus/ppplus.min.js" type="text/javascript"></script> <div id="ppplus"> </div> <script type="application/javascript"> var ppp = PAYPAL.apps.PPP({ "approvalUrl": "http://beta.vintecture.com", "placeholder": "ppplus", "mode": "sandbox", "country": "DE" }); </script>
The IFrame respond is: "Sorry, at the moment no payments can be processed for technical reasons".
Is it normal, or my code is wrong.
Thanks
Konstantin