/** * @Route("/{id}/pay") * @Method({"GET"}) */ public function initiatePayment($id) { $order = $this->getOrderManager()->findById($id); if (!$order) { return $this->fail(); } if ($order->getDeposited() && $order->getPaid()) { return $this->fail(); } $price = !$order->getDeposited() ? 1 : 100 - 25; $clientId = $this->container->getParameter('paypal_client_id'); $secret = $this->container->getParameter('paypal_secret'); $sdkConfig = $this->container->getParameter('paypal_sdk_config'); $cred = new \PayPal\Auth\OAuthTokenCredential($clientId, $secret); $accessToken = $cred->getAccessToken($sdkConfig); $apiContext = new \PayPal\Rest\ApiContext($cred); $apiContext->setConfig($sdkConfig); $payer = new \PayPal\Api\Payer(); $payer->setPaymentMethod('paypal'); $amount = new \PayPal\Api\Amount(); $amount->setCurrency('USD'); $amount->setTotal($price); $transaction = new \PayPal\Api\Transaction(); $transaction->setDescription('7L High School Mum Shoppe'); $transaction->setAmount($amount); $redirectUrls = new \PayPal\Api\RedirectUrls(); $redirectUrls->setReturnUrl('http://127.0.0.1/mumshoppe/web/app_dev.php/shop#/pay/' . $order->getId()); $redirectUrls->setCancelUrl('http://127.0.0.1/mumshoppe/web/app_dev.php/shop'); $payment = new \PayPal\Api\Payment(); $payment->setIntent('sale'); $payment->setPayer($payer); $payment->setRedirectUrls($redirectUrls); $payment->setTransactions(array($transaction)); $response = $payment->create($apiContext); foreach ($response->getLinks() as $link) { if ($link->getRel() === 'approval_url') { return $this->respondJson(array('success' => true, 'access_token' => $cred, 'location' => $link->getHref(), 'payment_id' => $response->getId())); } } return $this->fail(); }
function create_paypal_payment($total, $currency, $desc, $my_items, $redirect_url, $cancel_url) { $redirectUrls = new PayPal\Api\RedirectUrls(); $redirectUrls->setReturnUrl($redirect_url); $redirectUrls->setCancelUrl($cancel_url); $payer = new PayPal\Api\Payer(); $payer->setPaymentMethod("paypal"); $amount = new PayPal\Api\Amount(); $amount->setCurrency($currency); $amount->setTotal($total); $items = new PayPal\Api\ItemList(); $items->setItems($my_items); $transaction = new PayPal\Api\Transaction(); $transaction->setAmount($amount); $transaction->setDescription($desc); $transaction->setItemList($items); $payment = new PayPal\Api\Payment(); $payment->setRedirectUrls($redirectUrls); $payment->setIntent("sale"); $payment->setPayer($payer); $payment->setTransactions(array($transaction)); $payment->create(apiContext()); return $payment; }
private static function _setCancelUrl(PayPal\Api\RedirectUrls &$redirectUrls, $url) { $redirectUrls->setCancelUrl($url); }
$cred = new \PayPal\Auth\OAuthTokenCredential("ATNYSszAJLwQn-K4tIPlrVFsR5bKiAN6I07AQkR5pRh-tNllccoGn7bzRtcTZpjM6BgeAfKBAoSpS2sC", "EJQp7OmMT9pjTehZFOvHq5y2aBe5WQlelGH3MZSnd6XFPWdAB9ctwya3OKX9kWFaYTQTR8Vo0m47VPc6", $sdkConfig); } $apiContext = new \PayPal\Rest\ApiContext($cred, 'Request' . time()); $apiContext->setConfig($sdkConfig); $payer = new \PayPal\Api\Payer(); $payer->setPaymentMethod("paypal"); $amount = new \PayPal\Api\Amount(); $amount->setCurrency("EUR"); $amount->setTotal("{$price}"); $transaction = new \PayPal\Api\Transaction(); $transaction->setDescription("Deine Bestellung bei Alma Mater Wear"); $transaction->setAmount($amount); //$baseUrl = getBaseUrl(); $redirectUrls = new \PayPal\Api\RedirectUrls(); $redirectUrls->setReturnUrl($success_url); $redirectUrls->setCancelUrl($error_url); $payment = new \PayPal\Api\Payment(); $payment->setIntent("sale"); $payment->setPayer($payer); $payment->setRedirectUrls($redirectUrls); $payment->setTransactions(array($transaction)); $payment->create($apiContext); //Nach erfolgreicher Bezahlung wird der Bezahlstatus auf 1 gesetzt. Dafür wird die Payment ID in der Datenbank gespeichert mysqli_query($link, "UPDATE orders SET paymentID = '{$payment->id}' WHERE id = {$orderId}"); //Der Ziellink wird ausgegeben und per JavaScript geöffnet $referer = $payment->links[1]->href; echo $referer; } else { if (USE_LIVE_PAYMENT) { //in live mode, Sofort is currently locked. echo "Order cancelled";