|
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64 User : jackjohn ( 502) PHP Version : 5.3.17 Disable Function : NONE Directory : /home/jackjohn/public_html/shopsite-images/en-AU/javascript/payment/ |
Upload File : |
function populateAddressFields(data,payment) {
var fieldMap = {
'locality':'City',
'countryCode':'Country',
'postalCode':'Zip',
'administrativeArea':'State',
'familyName':'Last',
'givenName':'First',
'phoneNumber':'Phone'
}, shippingContact = payment.shippingContact, billingContact = payment.billingContact,text2html=(str=>{return str.replace(/[\u00A0-\u2666]/g,c => {return '&#'+c.charCodeAt(0)+';'})});
if(!ss_applepay.needShipping){
data['usebilling']='on';
shippingContact=Object.assign(shippingContact,billingContact);
}
for (var key in fieldMap) {
if (shippingContact.hasOwnProperty(key)) {
data["Ship"+fieldMap[key]] = text2html(shippingContact[key]);
}
if (billingContact.hasOwnProperty(key)) {
data[fieldMap[key]] = text2html(billingContact[key]);
}
}
data["Email"] = shippingContact['emailAddress'];
data["Address"] = text2html(billingContact['addressLines'][0]);
if (billingContact['addressLines'][1])
data["Address2"] = text2html(billingContact['addressLines'][1]);
data["ShipAddress"] = text2html(shippingContact['addressLines'][0]);
if (shippingContact['addressLines'][1])
data["ShipAddress2"] = text2html(shippingContact['addressLines'][1]);
}
function start_applepay(pay_request) {
var $=ss_jQuery,ordertotal_text=$('.cart-ordertotal-text').text(),subtotal_text=$('.cart-subtotal-text').text(),lineitems=[{label:subtotal_text,amount:ss_subtotal,type:'pending'}],allowed_countries=ss_applepay.allowedCountries,orderData={},recalc_button_text=ss_applepay.recalc_button_text,append2Form=function(name,value){$('<input type="hidden" class="appended">').attr('name',name).val(value).appendTo(document.order)},htmlDecode=function(value){return $('<textarea/>').html(value).text();};
var request = {
total:{label:ordertotal_text,amount:ss_ordertotal},
lineItems:lineitems,
requiredShippingContactFields:['email','phone'],
requiredBillingContactFields:['postalAddress']
};
if(ss_applepay.needShipping){request.requiredShippingContactFields.push('postalAddress')}
else{lineitems[0].type='final'}
request = ss_applepay.getRequest(request);
$(document.order).serializeArray().forEach((a)=>{orderData[a.name]=a.value});
var session = new ApplePaySession(ss_applepay.version, request);
ss_applepay.session=session;
session.oncancel = function(result){
ss_loadmask('off');button_clicked=0;
}
session.onvalidatemerchant = function (result) {
ss_applepay.performValidation(result.validationURL).then(function(merchantSession){session.completeMerchantValidation(merchantSession);}).catch(function(error){ss_loadmask('off');});
}
session.onshippingcontactselected = function (result) {
var zip = result.shippingContact.postalCode, country = result.shippingContact.countryCode.toUpperCase();
if (allowed_countries.indexOf(country) == -1)
session.completeShippingContactSelection(ApplePaySession.STATUS_INVALID_SHIPPING_POSTAL_ADDRESS,[],{label:ordertotal_text,amount:ss_ordertotal},lineitems);
else {
var data = Object.assign({},orderData,{'function':recalc_button_text,'zip_code':zip,'country':country,'shipping':ss_shipmethod,'paytype':'32'});
$('[name=zip_code]').val(zip);
$('[name=country]').val(country);
if(document.order.sql_addr){$('[name=sql_addr][value=none]').click();data['sql_addr']='none';}
if(document.order.sql_pay){$('[name=sql_pay][value=none]').click();data['sql_pay']='none';}
$.ajax({
url:'order.cgi',
data:data,
dataType:'jsonp',
jsonp:'show_jsoncart',
success: function(response) {
updateTotals(response);
lineitems = [{label:subtotal_text, amount:response.subtotal_v}];
let shipping_methods = [];
if (response.hasOwnProperty('shipping_options')) {
let ss_shipping_options = response.shipping_options;
for (let i = 0; i < ss_shipping_options.length; i++) {
let option = ss_shipping_options[i], name = htmlDecode(option.name),
shipping_method = {label:name,detail:'',amount:option.amount_v,identifier:option.value};
if (option.selected) {
shipping_methods.unshift(shipping_method);
let shiptotal = shipping_method.amount;
lineitems.push({label:name, amount:shiptotal})
} else
shipping_methods.push(shipping_method);
}
}
if(response.taxtotal_v){lineitems.push({label:response.taxstring, amount:response.taxtotal_v})}
session.completeShippingContactSelection(ApplePaySession.STATUS_SUCCESS,shipping_methods,{label:ordertotal_text,amount:response.ordertotal_v},lineitems);
},
error: function(jqXHR, textStatus, errorThrown) {
session.completeShippingContactSelection(ApplePaySession.STATUS_FAILURE,[],{label:ordertotal_text,amount:ss_ordertotal, type:'pending'},lineitems);
}
});
}
}
if(ss_applepay.needShipping)session.onshippingmethodselected = function (result) {
var shipping_method = result.shippingMethod,zip=$('[name=zip_code]').val(),country=$('[name=country]').val(),data = Object.assign({},orderData,{'function':recalc_button_text,'zip_code':zip,'country':country,'shipping':shipping_method.identifier||ss_shipmethod,'paytype':'32'});
ss_shipmethod=shipping_method.identifier||ss_shipmethod;
$('[name=shipping]').val(shipping_method.identifier);
if(document.order.sql_addr){$('[name=sql_addr][value=none]').click();data['sql_addr']='none';}
if(document.order.sql_pay){$('[name=sql_pay][value=none]').click();data['sql_pay']='none';}
$.ajax({
url:'order.cgi',
data:data,
dataType:'jsonp',
jsonp:'show_jsoncart',
success: function(response) {
updateTotals(response);
lineitems[0] = {label:subtotal_text, amount:response.subtotal_v};
lineitems[1] = {label:shipping_method.label, amount:response.shiptotal_v};
lineitems[2] = {label:response.taxstring, amount:response.taxtotal_v};
session.completeShippingMethodSelection(ApplePaySession.STATUS_SUCCESS,{label:ordertotal_text,amount:response.ordertotal_v, type:'final'},lineitems);
},
error: function(jqXHR, textStatus, errorThrown) {
session.completeShippingMethodSelection(ApplePaySession.STATUS_FAILURE,{label:ordertotal_text,amount:ss_ordertotal, type:'pending'},lineitems);
}
});
}
session.onpaymentauthorized = function (result) {
ss_applepay.sendPaymentToken(result.payment).then(function (success) {
session.completePayment(ApplePaySession.STATUS_SUCCESS);
if(document.order.paytype != undefined){$('[name=paytype]').remove();}
append2Form('paytype','32');
button_clicked=0;
$('.button8').click();
}).catch(function(error){
ss_loadmask('off');
button_clicked=0;
session.completePayment(ApplePaySession.STATUS_FAILURE);
});
}
session.begin();
}
ss_jQuery(function($) {
$('#applepay_button').on('click',function(e){
e.preventDefault();if(CheckIt(249,0)){start_applepay()}
});
});