OS : Linux
PHP Version : 7.4.33
Software : /**
* This PaypalExpressCheckout global is included by wp_enqueue_script( 'paypal-express-checkout' );
* It handles communication with Paypal Express checkout and public-api.wordpress.com for the purposes
* of simple-payments module.
*/
/* global paypal, jQuery */
/* exported PaypalExpressCheckout */
var PaypalExpressCheckout = {
primaryCssClassName: 'jetpack-simple-payments',
messageCssClassName: 'jetpack-simple-payments-purchase-message',
wpRestAPIHost: 'https://public-api.wordpress.com',
wpRestAPIVersion: '/wpcom/v2',
getEnvironment: function() {
if (
localStorage &&
localStorage.getItem &&
localStorage.getItem( 'simple-payments-env' ) === 'sandbox'
) {
return 'sandbox';
}
return 'production';
},
getCreatePaymentEndpoint: function( blogId ) {
return (
PaypalExpressCheckout.wpRestAPIHost +
PaypalExpressCheckout.wpRestAPIVersion +
'/sites/' +
blogId +
'/simple-payments/paypal/payment'
);
},
getExecutePaymentEndpoint: function( blogId, paymentId ) {
return (
PaypalExpressCheckout.wpRestAPIHost +
PaypalExpressCheckout.wpRestAPIVersion +
'/sites/' +
blogId +
'/simple-payments/paypal/' +
paymentId +
'/execute'
);
},
getNumberOfItems: function( field, enableMultiple ) {
if ( enableMultiple !== '1' ) {
return 1;
}
var numberField = document.getElementById( field );
if ( ! numberField ) {
return 1;
}
var number = Number( numberField.value );
if ( isNaN( number ) ) {
return 1;
}
return number;
},
/**
* Get the DOM element-placeholder used to show message
* about the transaction. If it doesn't exist then the function will create a new one.
*
* @param string domId id of the payment button placeholder
* @return Element the dom element to print the message
*/
getMessageContainer: function( domId ) {
return document.getElementById( domId + '-message-container' );
},
/**
* Show a messange close to the Paypal button.
* Use this function to give feedback to the user according
* to the transaction result.
*
* @param {String} message message to show
* @param {String} domId paypal-button element dom identifier
* @param {Boolean} [error] defines if it's a message error. Not TRUE as default.
*/
showMessage: function( message, domId, isError ) {
var domEl = PaypalExpressCheckout.getMessageContainer( domId );
// set css classes
var cssClasses = PaypalExpressCheckout.messageCssClassName + ' show ';
cssClasses += isError ? 'error' : 'success';
// show message 1s after PayPal popup is closed
setTimeout( function() {
domEl.innerHTML = message;
domEl.setAttribute( 'class', cssClasses );
}, 1000 );
},
showError: function( message, domId ) {
PaypalExpressCheckout.showMessage( message, domId, true );
},
processErrorMessage: function( errorResponse ) {
var error = errorResponse ? errorResponse.responseJSON : null;
var defaultMessage = 'There was an issue processing your payment.';
if ( ! error ) {
return ' ' + defaultMessage + ' ' + additionalError.message.toString() + ' ' + ( error.message || defaultMessage ) + ' ' + defaultMessage + ' ' + message + '