Guest User

Untitled

a guest
Nov 14th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. {% for id, name in craft.commerce.gateways.allCustomerEnabledGateways %}
  2. {% if name == 'PayPal' %}
  3.  
  4. <form method="POST" class="" id="paymentForm">
  5. <input type="hidden" name="action" value="commerce/payments/pay"/>
  6. {{ redirectInput('/shop/customer/order?number='~cart.number) }}
  7. <input type="hidden" name="cancelUrl" value="{{ '/shop/checkout/payment'|hash }}"/>
  8. <input type="hidden" name="orderEmail" value="{{ cart.email }}"/>
  9.  
  10. {{ csrfInput() }}
  11.  
  12. <fieldset class="bn p0 m0">
  13. <div class="paypal-rest-form" data-env="sandbox"
  14. data-prepare="{{ actionUrl('commerce/payments/pay') }}">
  15. <div id="paypal-button" style="width: 100%;"></div>
  16. </div>
  17. </fieldset>
  18.  
  19. </form>
  20.  
  21. <script src="https://www.paypalobjects.com/api/checkout.js"></script>
  22.  
  23. <script type="text/javascript">
  24. function initCheckout() {
  25. // Because this might get executed before Stripe is loaded.
  26. if (typeof paypal === "undefined") {
  27. setTimeout(initCheckout, 200);
  28. } else {
  29. console.log('Initialising PayPal Express form...');
  30. var $wrapper = $('.paypal-rest-form');
  31. var $form = $wrapper.parents('form');
  32. var paymentUrl = $wrapper.data('prepare');
  33.  
  34. paypal.Button.render({
  35. style: {
  36. size: 'responsive',
  37. tagline: false,
  38. shape: 'rect'
  39. },
  40. env: $wrapper.data('env'),
  41. commit: true,
  42.  
  43. payment: function() {
  44.  
  45. // Copy over all the data to simulate a form being submitted
  46. var postData = {};
  47. var $formElements = $form.find('input[type=hidden]');
  48.  
  49. for (var i = 0; i < $formElements.length; i++) {
  50. if ($formElements[i].name === 'action') {
  51. continue;
  52. }
  53. postData[$formElements[i].name] = $formElements.get(i).value;
  54. }
  55.  
  56. return paypal.request.post(paymentUrl, postData).then(function(data) {
  57. if (data.error) {
  58. alert(data.error);
  59.  
  60. return false;
  61. }
  62.  
  63. return data.transactionId;
  64. });
  65. },
  66.  
  67. onAuthorize: function(data) {
  68. return paypal.request.post(data.returnUrl).then(function(data) {
  69. window.location = data.url;
  70. });
  71. }
  72.  
  73. }, '#paypal-button');
  74.  
  75. $form.find('[type=submit]').remove();
  76. if ($('.modal').data('modal')) {
  77. $('.modal').data('modal').updateSizeAndPosition();
  78. }
  79. }
  80. }
  81.  
  82. initCheckout();
  83. </script>
  84.  
  85. {% endif %}
  86. {% endfor %}
Add Comment
Please, Sign In to add comment