PluginProbe
PayPlug for WooCommerce (Official) / 3.1.0
PayPlug for WooCommerce (Official) v3.1.0
3.1.0 3.0.0 2.18.0 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.1.0 1.10.0 1.10.1 1.2.1 1.2.10 1.2.11 1.2.2 1.2.3 1.2.4 1.2.5 All 102 releases
payplug / assets / js / blocks / wc-payplug-apple_pay-blocks.js

wc-payplug-apple_pay-blocks.js in PayPlug for WooCommerce (Official) 3.1.0, at assets/js/blocks/wc-payplug-apple_pay-blocks.js

1 lines 10.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (()=>{"use strict";var e={20(e,t,a){var n=a(609),r=Symbol.for("react.element"),o=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,p=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,a){var n,o={},c=null,l=null;for(n in void 0!==a&&(c=""+a),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(l=t.ref),t)s.call(t,n)&&!i.hasOwnProperty(n)&&(o[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===o[n]&&(o[n]=t[n]);return{$$typeof:r,type:e,key:c,ref:l,props:o,_owner:p.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},848(e,t,a){e.exports=a(20)},609(e){e.exports=window.React}},t={};function a(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const n=window.wp.i18n,r=window.wp.htmlEntities,o=window.wc.wcSettings,s=window.wc.wcBlocksRegistry;var p=a(609);const i=window.jQuery;var c=a.n(i);const l=(0,o.getSetting)("apple_pay_data",{});var d=a(848);const u=(0,o.getSetting)("apple_pay_data",{}),y=e=>{const t=(0,p.useRef)(null);let a=null;const n=(0,p.useRef)([]),r=jQuery("#apple-pay-button-wrapper"),o={load_order_total:!1,OrderPaymentCreated:function(e){"success"!==e.payment_data.result&&o.CancelOrder(),o.BeginSession(e)},CreateSession:function(){const e={countryCode:u.countryCode,currencyCode:u.currencyCode,merchantCapabilities:["supports3DS"],supportedNetworks:["visa","masterCard"],total:{label:"Apple Pay",type:"final",amount:parseFloat(u.total_amount/100)},applicationData:btoa(JSON.stringify({apple_pay_domain:u.apple_pay_domain})),requiredBillingContactFields:["postalAddress","name"],requiredShippingContactFields:["postalAddress","name","phone","email"]};u.payplug_apple_pay_shipping_required&&(e.shippingMethods=n.current),t.current=new ApplePaySession(4,e)},CancelOrder:function(){t.current.oncancel=e=>{var a;(a={order_id:t.current.order_id,payment_id:t.current.payment_id},new Promise((e,t)=>{c().ajax({type:"POST",data:a,url:l.ajax_url_applepay_cancel_order}).done(function(t){e(t)}).fail(function(e,a,n){t(n)})})).then(()=>{s()})}},BeginSession:function(e){const a=t.current;a.payment_id=e.payment_data.payment_id,a.order_id=e.order_id,a.cancel_url=e.payment_data.cancel_url,a.return_url=e.payment_data.return_url,o.MerchantValidated(a,e.payment_data.merchant_session),a.amount=100*parseFloat(u.total/100),a.onshippingmethodselected=e=>{const t=e.shippingMethod;a.shippingMethod=t.identifier;const n=u.total/100;let r=t.amount;const o=parseFloat(n)+parseFloat(r);a.amount=100*o;const s={newTotal:{label:"Apple Pay",amount:o},newLineItems:[{label:t.label,type:"final",amount:r}]};a.completeShippingMethodSelection(s)},a.begin()},MerchantValidated:function(e,t){e.onvalidatemerchant=a=>{try{e.completeMerchantValidation(t)}catch(e){o.CancelOrder()}}},AddErrorMessage:function(e){r.append(jQuery('<div class="apple-pay-cart-notice"></div>').append(jQuery("<span></span>").text(e)))},DeleteErrorMessage:function(){setTimeout(function(){jQuery(".apple-pay-cart-notice").remove()},4e3)}};function s(){jQuery("apple-pay-button").removeClass("isDisabled")}return(0,p.useEffect)(()=>{new Promise((e,t)=>{c().ajax({type:"POST",data:void 0,url:l.ajax_url_applepay_get_shippings}).done(function(t){e(t)}).fail(function(e,a,n){t(n)})}).then(e=>{n.current=e.data})},[]),(0,p.useEffect)(()=>{const e=document.getElementById("apple-pay-button"),n=e=>{e.preventDefault(),e.stopImmediatePropagation(),jQuery("apple-pay-button").addClass("isDisabled"),o.CreateSession(),o.CancelOrder(),new Promise((e,t)=>{c().ajax({type:"POST",data:void 0,url:l.ajax_url_place_order_with_dummy_data}).done(function(t){e(t)}).fail(function(e,a,n){t(n)})}).then(async e=>{if(!1===e.success)return o.AddErrorMessage(e.data.message),o.DeleteErrorMessage(),void s();u.total=e.total,o.OrderPaymentCreated(e),await new Promise((e,n)=>{t.current.onpaymentauthorized=n=>{let r=n.payment,s={order_id:t.current.order_id,shipping:r.shippingContact,billing:r.billingContact,shipping_method:t.current.shippingMethod};(e=>new Promise((t,a)=>{c().ajax({type:"POST",data:e,url:l.ajax_url_update_applepay_order}).done(function(e){t(e)}).fail(function(e,t,n){a(n)})}))(s).then(r=>{s={action:"applepay_update_payment",post_type:"POST",payment_id:t.current.payment_id,payment_token:n.payment.token,order_id:t.current.order_id,amount:t.current.amount/100},(e=>new Promise((t,a)=>{c().ajax({type:"POST",data:e,url:l.ajax_url_update_applepay_payment}).done(function(e){t(e)}).fail(function(e,t,n){a(n)})}))(s).then(n=>{a=ApplePaySession.STATUS_SUCCESS,!0!==n.success&&(a=ApplePaySession.STATUS_FAILURE,o.AddErrorMessage(n.data.message),o.DeleteErrorMessage(),o.CancelOrder()),t.current.completePayment({status:a}),e()})})}}).then(e=>{window.location=t.current.return_url})})};return e&&e.addEventListener("click",n),()=>{e&&e.removeEventListener("click",n)}},[]),(0,d.jsx)(d.Fragment,{children:" "})},_=(0,o.getSetting)("apple_pay_data",{}),m=(0,n.__)("Gateway method title","payplug"),f=(0,r.decodeEntities)(_?.title)||m,g=e=>{const{eventRegistration:t,emitResponse:a}=e,{onPaymentSetup:r,onCheckoutSuccess:o}=t,s=(0,p.useRef)(null);(0,p.useEffect)(()=>{const e=jQuery("form .wp-block-woocommerce-checkout-actions-block .wc-block-components-button"),t=()=>{i.CreateSession(),i.CancelOrder()};return e.on("click",t),()=>{e.off("click",t)}},[e.billing.cartTotal.value]),(0,p.useEffect)(()=>{const e=r(async()=>{if(_.is_order_pay)try{const e=await((e,t)=>{const a=function(){const e={order_id:t,"woocommerce-process-checkout-nonce":l.wp_nonce,gateway:"apple_pay"};return l.is_order_pay&&(e.order_pay_key=l.order_pay_key),e}();return new Promise((e,t)=>c().ajax({type:"POST",data:a,url:l.payplug_create_intent_payment}).done(function(t){e(t)}).fail(function(e){t(e)}))})(0,_.order_pay_id);if(!e||!1===e.success){const t=e&&e.data&&e.data.message||(e&&"string"==typeof e.data?e.data:null)||(0,n.__)("Payment processing failed. Please retry.","payplug");return{type:a.responseTypes.ERROR,message:t,messageContext:a.noticeContexts.PAYMENTS}}return i.BeginSession(e),{type:a.responseTypes.SUCCESS}}catch(e){const t=e&&e.responseJSON&&e.responseJSON.data,r=t&&t.message||("string"==typeof t?t:null);return{type:a.responseTypes.ERROR,message:r||(0,n.__)("Payment processing failed. Please retry.","payplug"),messageContext:a.noticeContexts.PAYMENTS}}return{type:a.responseTypes.SUCCESS}});return()=>{e()}},[r,a.noticeContexts.PAYMENTS,a.responseTypes.ERROR,a.responseTypes.SUCCESS]),(0,p.useEffect)(()=>{const e=o(({orderId:e,processingResponse:t})=>(_.is_order_pay||(s.current.order_id=e,i.BeginSessionFromPaymentDetails(t?.paymentDetails||{},t?.redirectUrl)),new Promise(e=>{s.current.onpaymentauthorized=async t=>{const r={action:"applepay_update_payment",post_type:"POST",payment_id:s.current.payment_id,payment_token:t.payment.token,order_id:s.current.order_id};try{const t=await(e=>new Promise((t,a)=>{c().ajax({type:"POST",data:e,url:l.ajax_url_applepay_update_payment}).done(function(e){t(e)}).fail(function(e,t,n){a(n)})}))(r);if(!0!==t.success)return s.current.completePayment({status:ApplePaySession.STATUS_FAILURE}),void e({type:a.responseTypes.ERROR,message:(0,n.__)("Payment processing failed. Please retry.","payplug"),messageContext:a.noticeContexts.PAYMENTS});s.current.completePayment({status:ApplePaySession.STATUS_SUCCESS}),e({type:a.responseTypes.SUCCESS,redirectUrl:s.current.return_url})}catch(t){s.current.completePayment({status:ApplePaySession.STATUS_FAILURE}),e({type:a.responseTypes.ERROR,message:(0,n.__)("Payment processing failed. Please retry.","payplug"),messageContext:a.noticeContexts.PAYMENTS})}}})));return()=>{e()}},[o]);let i={CreateSession:function(){const t={countryCode:_.payplug_countryCode,currencyCode:_.payplug_currencyCode,merchantCapabilities:["supports3DS"],supportedNetworks:["visa","masterCard"],supportedTypes:["debit","credit"],total:{label:"Apple Pay",type:"final",amount:e.billing.cartTotal.value/100},applicationData:btoa(JSON.stringify({apple_pay_domain:_.payplug_apple_pay_domain}))};s.current=new ApplePaySession(3,t)},CancelOrder:function(){s.current.oncancel=e=>{window.location=s.current.cancel_url}},BeginSession:function(e){const t=s.current;t.payment_id=e.data.payment_id,t.order_id=_.order_pay_id,t.cancel_url=e.data.cancel,t.return_url=e.data.redirect,i.MerchantValidated(t,e.data.merchant_session),t.begin()},BeginSessionFromPaymentDetails:function(e,t){const a=s.current;a.payment_id=e.payment_id,a.cancel_url=e.cancel_url,a.return_url=e.return_url||t;let n=null;try{n=JSON.parse(e.merchant_session)}catch(e){n=null}i.MerchantValidated(a,n),a.begin()},MerchantValidated:function(e,t){e.onvalidatemerchant=async a=>{try{e.completeMerchantValidation(t)}catch(e){i.CancelOrder()}}}};return(0,d.jsx)(d.Fragment,{})},S=()=>(0,d.jsxs)("span",{style:{width:"100%"},children:[f,(0,d.jsx)(h,{})]}),h=()=>(0,d.jsx)("img",{src:_?.icon.src,alt:_?.icon.icon_alt,className:"payplug-payment-icon",style:{float:"right"}}),P={name:"apple_pay",label:(0,d.jsx)(S,{}),content:(0,d.jsx)(g,{}),edit:(0,d.jsx)(g,{}),canMakePayment:()=>!0,ariaLabel:f,supports:{features:_.supports}},w=e=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{id:"apple-pay-button-wrapper",children:(0,d.jsx)("apple-pay-button",{id:"apple-pay-button",buttonstyle:"black",type:"pay",locale:_?.payplug_locale})}),(0,d.jsx)(y,{...e})]}),C={name:"apple_pay",content:(0,d.jsx)(w,{}),edit:(0,d.jsx)(w,{}),canMakePayment:e=>{if(!_?.is_cart)return!1;if(_.payplug_apple_pay_shipping_required=e.cartNeedsShipping,_.total_amount=e.cartTotals.total_price,!e.cartNeedsShipping)return!0;if(!e.selectedShippingMethods||!e.selectedShippingMethods[0])return!0;let t=e.selectedShippingMethods[0];_.payplug_carriers.forEach(function(e){e.identifier===t&&(e.selected=!0)});let a=_?.payplug_authorized_carriers,n=e.selectedShippingMethods[0].split(":"),r=!1;return a.forEach(function(e){n[0]===e&&(r=!0)}),r},paymentMethodId:"apple_pay"};(0,s.registerExpressPaymentMethod)(C),(0,s.registerPaymentMethod)(P)})();