|
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-CA/javascript/payment/ |
Upload File : |
"use_strict";
ss_jQuery(function($){
let d=document,w=window,f=(d.order||d.billing||d.confirmation),submit=d.querySelector('input.button8,input.button67,input.button162'),bnum=parseInt(submit.className.replace('button','')),ppc=w.paypal_commerce;
const appendToForm=function(name,value){$('<input type="hidden" class="appended">').attr('name',name).val(value).appendTo(f)},
error_handler=function(err){appendToForm('ppcp_error_code',err.code);appendToForm('ppcp_error_text',err.message);f.submit();};
if(ppc.hosted){
if(paypal.HostedFields.isEligible() === true) {
let hf = Object.assign({},w.paypal_commerce.hosted,{
createOrder: async function(data,actions){
let tyData={};
$(f).serializeArray().forEach((a)=>{tyData[a.name]=a.value});
let resp = await (new Promise((resolve, reject) => {
$.ajax({
url:'thankyou.cgi',
data:tyData,
dataType:'jsonp',
jsonp:'PPC-CreateOrder',
success:resolve,
error:reject
});
}));
if(resp.success)
return resp.id;
else {
throw(resp);
}
},
styles:{
'input':{'font-size':'14px','font-family':'Product Sans','color':'#8A8A8A'},
':focus':{'color':'black'}
}
}),sca=false;
if(ppc.sca&&ppc.sca.use){
sca = true;
$('<div id="payments-sdk__contingency-lightbox"></div>').insertAfter(f);
}
paypal.HostedFields.render(hf).then(hostedFields => {
f.addEventListener('submit',async function(ev){
let e;
if((e=d.querySelector('input#hidden_function'))&&e.dataset.button==bnum){
ev.preventDefault();
try{
let o={};
if(sca){o['contingencies']=['3D_SECURE']}
let payload = await hostedFields.submit(o);
if(sca) {
if(payload.liabilityShifted === undefined) {
appendToForm('ppcp_liabilityShifted', 'false');
appendToForm('ppcp_scaReason','NOT_REQUIRED');
} else if(payload.liabilityShifted || ppc.sca.ar.includes(payload.authenticationReason)) {
appendToForm('ppcp_liabilityShifted', payload.liabilityShifted&&'true'||'false');
appendToForm('ppcp_scaReason',payload.authenticationReason);
} else if(payload.authenticationReason === 'ERROR') {
//Prompt the buyer to re-authenticate or request for another form of payment
alert(ppc.sca.failed);
ss_loadmask('off');
done_flag=0;
return false;
} else {
alert(ppc.sca.failed);
ss_loadmask('off');
done_flag=0;
return false;
}
appendToForm('ppcp_orderid',payload.orderId);
}
if(payload.card) {
appendToForm('pay1', payload.card.card_type+': ***** '+payload.card.last_digits);
}
f.submit();
} catch(e) {
if(e.name == 'INVALID_REQUEST') {
e.details.forEach(e => {let f=e.field.substr(e.field.lastIndexOf('/')+1);$('#card-'+f).addClass('error').on('click',()=>{$('#card-'+f).removeClass('error').off('click')})});
alert(ppc.texts.paymentError);
ss_loadmask('off');
done_flag=0;
} else {
let message = (e.details&&e.details[0].description)||e.message;
let code = (e.details&&e.details[0].issue)||e.name;
appendToForm('ppcp_error', message);
appendToForm('ppcp_error_code', code);
appendToForm('ppcp_debug_id', e.debug_id);
f.submit();
}
}
}
});
});
} else {
// Handle experience when advanced credit and debit card payment
// fields are not eligible
}
} else if(ppc.branded) {
let options={
style:ppc.branded.style,
createOrder: function(data,actions){
if(CheckIt(88,0)){
button_clicked=false;
let tyData={};
$(f).serializeArray().forEach((a)=>{tyData[a.name]=a.value});
tyData['paytype']='37';
tyData['ppcp_orderid']=data.orderID;
let resp;
tyData['function']='zip_code_changed';
$.ajax({
url:'order.cgi',
data:tyData,
dataType:'jsonp',
jsonp:'PPC-CreateOrder',
async:false,
success:function(r){resp = r;},
error:function(r){resp=r}
});
ss_loadmask('off');
if(resp.success)
return resp.id;
else {
alert(resp.message);
throw(resp);
}
}
},
onApprove:function(data,actions) {
appendToForm('ppcp_orderid', data.orderID);
if(f.paytype != undefined){$('[name=paytype]').remove()}
appendToForm('paytype','37');
$('#zip_code, #country').prop('readonly', true);
$('.chk_button').hide();
$('.button8').click().parent().show();
}
},currency_code = ppc.branded.currency_code;
if(ppc.branded.needShipping) {
options=Object.assign(options, {
onShippingChange: function(data,actions) {
let orderData={},resp,handling=0.0,discount=0.0;
f.zip_code.value=data.shipping_address.postal_code;
if(f.country.type=='select-one'&&$('#country option[value='+data.shipping_address.country_code+']').length<1){return actions.reject()}
f.country.value=data.shipping_address.country_code;
$(f).serializeArray().forEach((a)=>{orderData[a.name]=a.value});
orderData=Object.assign(orderData,{'function':$('.button7').val(),'paytype':'37',country:data.shipping_address.country_code,zip_code:data.shipping_address.postal_code});
$.ajax({url:'order.cgi',async:false,data:orderData,dataType:'jsonp',jsonp:'show_jsoncart',success:function(resp){
let amount={},handling=0.0,discount=0.0;
updateTotals(resp);
f.zip_code.defaultValue=f.zip_code.value;
if(!resp.shipping || resp.shipping == 'upsnone'){return actions.reject()}
if(data.amount.value == resp.ordertotal_v.toFixed(2)){return actions.resolve();}
amount = {currency_code:currency_code,value:resp.ordertotal_v.toFixed(2),breakdown:{}};
amount.breakdown.item_total={currency_code:currency_code,value:resp.producttotal_v.toFixed(2)};
amount.breakdown.tax_total={currency_code:currency_code,value:resp.taxtotal_v.toFixed(2)};
amount.breakdown.shipping={currency_code:currency_code,value:resp.shiptotal_v.toFixed(2)};
handling=resp.surcharge&&resp.surcharge.surchargetotal_v>0.0&&resp.surcharge.surchargetotal_v||0.0;
if(handling>0.0)amount.breakdown.handling={currency_code:currency_code,value:handling.toFixed(2)};
discount=(resp.producttotal_v+resp.taxtotal_v+resp.shiptotal_v+handling)-resp.ordertotal_v;
if(discount>0.0)amount.breakdown.discount={currency_code:currency_code,value:discount.toFixed(2)};
return actions.order.patch([{op:'replace',path:"/purchase_units/@reference_id=='default'/amount",value:amount}]);
},error:function(e){return actions.reject()}});
}});
}
paypal.Buttons(options).render('#ppcp-button');
}
});