function receipt_page($order_id) { $order = new WC_Order($order_id); WC()->session->ppp_order_id = $order_id; $PaymentData = AngellEYE_Gateway_Paypal::calculate($order, true); $payment = new Payment(); $payment->setId(WC()->session->paymentId); $patchReplace = new \PayPal\Api\Patch(); $patchReplace->setOp('replace')->setPath('/transactions/0/amount')->setValue(json_decode('{ "total": "' . number_format($order->get_total(), 2, '.', '') . '", "currency": "' . get_woocommerce_currency() . '", "details": { "subtotal": "' . $PaymentData['itemamt'] . '", "shipping": "' . $PaymentData['shippingamt'] . '", "tax":"' . $PaymentData['taxamt'] . '" } }')); $patchRequest = new \PayPal\Api\PatchRequest(); if ($order->needs_shipping_address() && !empty($order->shipping_country)) { //add shipping info $patchAdd = new \PayPal\Api\Patch(); $patchAdd->setOp('add')->setPath('/transactions/0/item_list/shipping_address')->setValue(json_decode('{ "recipient_name": "' . $order->shipping_first_name . ' ' . $order->shipping_last_name . '", "line1": "' . $order->shipping_address_1 . '", "city": "' . $order->shipping_city . '", "state": "' . $order->shipping_state . '", "postal_code": "' . $order->shipping_postcode . '", "country_code": "' . $order->shipping_country . '" }')); $patchRequest->setPatches(array($patchAdd, $patchReplace)); } else { $patchRequest->setPatches(array($patchReplace)); } try { $result = $payment->update($patchRequest, $this->getAuth()); $this->add_log(print_r($payment, true)); if ($result == true) { } ?> <script src="https://www.paypalobjects.com/webstatic/ppplus/ppplus.min.js"type="text/javascript"></script> <script> jQuery(document).ready(function(){ jQuery.blockUI({ message: "<?php echo esc_js(__('Thank you for your order. We are now redirecting you to PayPal to make payment.', 'paypal-for-woocommerce')); ?> ", baseZ: 99999, overlayCSS: { background: "#fff", opacity: 0.6 }, css: { padding: "20px", zindex: "9999999", textAlign: "center", color: "#555", border: "3px solid #aaa", backgroundColor:"#fff", cursor: "wait", lineHeight: "24px" } }); PAYPAL.apps.PPP.doCheckout(); }); </script> <?php } catch (PayPal\Exception\PayPalConnectionException $ex) { wc_add_notice(__("Error processing checkout. Please try again. ", 'woocommerce'), 'error'); $this->add_log($ex->getData()); } catch (Exception $ex) { $this->add_log($ex->getMessage()); // Prints the Error Code wc_add_notice(__("Error processing checkout. Please try again.", 'woocommerce'), 'error'); } }
// [ // { // "op":"replace", // "path":"/url", // "value":"https://requestb.in/10ujt3c1" // }, // { // "op":"replace", // "path":"/event_types", // "value":[ // { // "name":"PAYMENT.SALE.REFUNDED" // } // ] // } // ] $patch = new \PayPal\Api\Patch(); $patch->setOp("replace")->setPath("/url")->setValue("https://requestb.in/10ujt3c1?uniqid=" . uniqid()); $patch2 = new \PayPal\Api\Patch(); $patch2->setOp("replace")->setPath("/event_types")->setValue(json_decode('[{"name":"PAYMENT.SALE.REFUNDED"}]')); $patchRequest = new \PayPal\Api\PatchRequest(); $patchRequest->addPatch($patch)->addPatch($patch2); // ### Get Webhook try { $output = $webhook->update($patchRequest, $apiContext); } catch (Exception $ex) { ResultPrinter::printError("Updated a Webhook", "Webhook", null, $patchRequest, $ex); exit(1); } ResultPrinter::printResult("Updated a Webhook", "Webhook", $output->getId(), $patchRequest, $output); return $output;
// "country_code": "US", // "state": "CA" // } // } // ] $patchReplace = new \PayPal\Api\Patch(); $patchReplace->setOp('replace')->setPath('/transactions/0/amount')->setValue(json_decode('{ "total": "25.00", "currency": "USD", "details": { "subtotal": "17.50", "shipping": "6.20", "tax":"1.30" } }')); $patchAdd = new \PayPal\Api\Patch(); $patchAdd->setOp('add')->setPath('/transactions/0/item_list/shipping_address')->setValue(json_decode('{ "recipient_name": "Gruneberg, Anna", "line1": "52 N Main St", "city": "San Jose", "state": "CA", "postal_code": "95112", "country_code": "US" }')); $patchRequest = new \PayPal\Api\PatchRequest(); $patchRequest->setPatches(array($patchReplace, $patchAdd)); // ### Update payment // Update payment object by calling the // static `update` method // on the Payment class by passing a valid // Payment ID
// #### Partially Update Web Profile // Use this call to partially update a web experience profile. // Documentation available at https://developer.paypal.com/webapps/developer/docs/api/#partially-update-a-web-experience-profile // We will be re-using the sample code to get a web profile. GetWebProfile.php will // create a new web profileId for sample, and return the web profile object. /** @var \PayPal\Api\WebProfile $webProfile */ $webProfile = (require 'GetWebProfile.php'); // ### Create Patch Operation // APIs allows us to pass an array of patches // to make patch operations. // Each Patch operation can be created by using Patch Class // as shown below $patchOperation1 = new \PayPal\Api\Patch(); // The operation to perform. Required. Allowed values: add, remove, replace, move, copy, test $patchOperation1->setOp("add")->setPath("/presentation/brand_name")->setValue("New Brand Name"); // Similar patch operation to remove the landing page type $patchOperation2 = new \PayPal\Api\Patch(); $patchOperation2->setOp("remove")->setPath("/flow_config/landing_page_type"); //Generate an array of patch operations $patches = array($patchOperation1, $patchOperation2); try { // Execute the partial update, to carry out these two operations on a given web profile object if ($webProfile->partial_update($patches, $apiContext)) { $webProfile = \PayPal\Api\WebProfile::get($webProfile->getId(), $apiContext); } } catch (\Exception $ex) { ResultPrinter::printError("Partially Updated Web Profile", "Web Profile", $webProfile->getId(), $patches, $ex); exit(1); } ResultPrinter::printResult("Partially Updated Web Profile", "Web Profile", $webProfile->getId(), $patches, $webProfile);