Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {% for id, name in craft.commerce.gateways.allCustomerEnabledGateways %}
- {% if name == 'PayPal' %}
- <form method="POST" class="" id="paymentForm">
- <input type="hidden" name="action" value="commerce/payments/pay"/>
- {{ redirectInput('/shop/customer/order?number='~cart.number) }}
- <input type="hidden" name="cancelUrl" value="{{ '/shop/checkout/payment'|hash }}"/>
- <input type="hidden" name="orderEmail" value="{{ cart.email }}"/>
- {{ csrfInput() }}
- <fieldset class="bn p0 m0">
- <div class="paypal-rest-form" data-env="sandbox"
- data-prepare="{{ actionUrl('commerce/payments/pay') }}">
- <div id="paypal-button" style="width: 100%;"></div>
- </div>
- </fieldset>
- </form>
- <script src="https://www.paypalobjects.com/api/checkout.js"></script>
- <script type="text/javascript">
- function initCheckout() {
- // Because this might get executed before Stripe is loaded.
- if (typeof paypal === "undefined") {
- setTimeout(initCheckout, 200);
- } else {
- console.log('Initialising PayPal Express form...');
- var $wrapper = $('.paypal-rest-form');
- var $form = $wrapper.parents('form');
- var paymentUrl = $wrapper.data('prepare');
- paypal.Button.render({
- style: {
- size: 'responsive',
- tagline: false,
- shape: 'rect'
- },
- env: $wrapper.data('env'),
- commit: true,
- payment: function() {
- // Copy over all the data to simulate a form being submitted
- var postData = {};
- var $formElements = $form.find('input[type=hidden]');
- for (var i = 0; i < $formElements.length; i++) {
- if ($formElements[i].name === 'action') {
- continue;
- }
- postData[$formElements[i].name] = $formElements.get(i).value;
- }
- return paypal.request.post(paymentUrl, postData).then(function(data) {
- if (data.error) {
- alert(data.error);
- return false;
- }
- return data.transactionId;
- });
- },
- onAuthorize: function(data) {
- return paypal.request.post(data.returnUrl).then(function(data) {
- window.location = data.url;
- });
- }
- }, '#paypal-button');
- $form.find('[type=submit]').remove();
- if ($('.modal').data('modal')) {
- $('.modal').data('modal').updateSizeAndPosition();
- }
- }
- }
- initCheckout();
- </script>
- {% endif %}
- {% endfor %}
Add Comment
Please, Sign In to add comment