1(function (app, $) { 2 var $cache = {}; 3 4 5 6 7 samsungpayCheckout = function(){ 8 9 $(document).on('click','#checkout-samsungpay-button-minicart',function(){ 10 11 var lOrderTotal= "0"; 12 var shippingDiscount= "0"; 13 var orderDiscountTotal= "0"; 14 var tax= "0"; 15 var shipping="0"; 16 var orderSummaryURl = app.util.appendParamsToUrl(app.urls.serializeOrderSummary); 17 var parameter = {type: "POST", dataType: "json", async :false, returnObject: "OrderSummary,Basket" }; 18 19 $.ajax({ 20 url: orderSummaryURl, 21 data: parameter, 22 async: false, 23 24 success : function (data) { 25 var orderSummary=data.response.orderSummary; 26 if(orderSummary.subTotal && orderSummary.subTotal!=null){ 27 lOrderTotal =orderSummary.subTotal; 28 } 29 if(orderSummary.shippingDiscount && orderSummary.shippingDiscount!=null){ 30 shippingDiscount= orderSummary.shippingDiscount; 31 } 32 if(orderSummary.orderDiscountTotal && orderSummary.orderDiscountTotal!=null){ 33 orderDiscountTotal= orderSummary.orderDiscountTotal; 34 lOrderTotal=lOrderTotal+orderDiscountTotal; 35 } 36 if(orderSummary.taxTotal && orderSummary.taxTotal!=null){ 37 tax= orderSummary.taxTotal; 38 } 39 if(orderSummary.shippingTotal && orderSummary.shippingTotal!=null){ 40 shipping= orderSummary.shippingTotal; 41 } 42 }, error: function(jq,status,message){ 43 console.log('error'); 44 } 45 }); 46 47 var shippingOptions = new Array(); 48 if (!window.PaymentRequest) { 49 // PaymentRequest API is not available - forwarding to legacy form based experience. 50 location.href = '/checkout'; 51 } 52 53 var samsung_marchant_name= $('#samsung_merchant_name_minicart').val(); 54 var samsung_productId= $('#samsung_productId_minicart').val(); 55 var samsung_supportedMethods= $('#samsung_supportedMethods').val(); 56 57 58 var supportedInstruments = [{ 59 supportedMethods: [ 'https://spay.samsung.com' ], // 'https://spay.samsung.com' 60 data: { 61 "version": "1", 62 "productId": samsung_productId, //Service id from partner portal 63 "allowedCardNetworks": ['mastercard','visa','amex'], 64 "merchantName": samsung_marchant_name, //Merchant name in partner portal 65 "billingAddressRequired": true, 66 }, 67 "isRecurring": false, 68 "paymentProtocol": "PROTOCOL_3DS" 69 }]; 70 71 72 var details = { 73 displayItems: [ 74 { 75 label: 'ITEM SUB TOTAL', 76 amount: { currency: 'USD', value: lOrderTotal } 77 }, 78 { 79 label: 'SHIPPING', 80 amount: { currency: 'USD', value: shipping } 81 }, 82 83 { 84 label: 'ORDER DISCOUNT', 85 amount: { currency: 'USD', value: orderDiscountTotal } 86 }, 87 88 { 89 label: 'SHIPPING DISCOUNT', 90 amount: { currency: 'USD', value: shippingDiscount } 91 }, 92 { 93 label: 'TAX', 94 amount: { currency: 'USD', value: tax } 95 } 96 ], 97 98 shippingOptions:[ ], 99 total: { 100 label: 'Total:', 101 amount: { currency: 'USD', value : lOrderTotal } 102 } 103 }; 104 105 var options = { 106 requestShipping: true, 107 requestPayerEmail: true, 108 requestPayerPhone: true, 109 requestPayerName: true 110 }; 111 112 var request = new PaymentRequest(supportedInstruments, details, options); 113 114 if (request.canMakePayment) { 115 request.canMakePayment().then(function(result) { 116 }); 117 } else { 118 console.log( "This browser does not support "); 119 } 120 121 request.addEventListener('shippingaddresschange', function(e) { 122 e.updateWith((function(details, addr) { 123 var shippingOption = { 124 id: '', 125 label: '', 126 amount: { currency: 'USD', value: '0.00' }, selected: true}; 127 128 if (addr.country === 'US') { 129 var url = app.util.appendParamsToUrl(app.urls.retrieveShippingMethods); 130 var address; 131 address = {}; 132 address.stateCode = addr.region; 133 address.postalCode = addr.postalCode; 134 var params = {type: "POST", dataType: "json",async :false, address: JSON.stringify( address ),returnObject: "ShippingOptions,OrderSummary" }; 135 136 $.ajax({ 137 url: url, 138 data: params, 139 async: false, 140 141 success : function (data) { 142 var shippingOptions = new Array(); 143 if(data && data!=null && data.response !=null) { 144 var methods=data.response.shippingMethods.list; 145 var cartModelJsonObjTest=JSON.stringify(data.response); 146 147 for( var i = 0; i < methods.length; i++ ) { 148 id = methods[i].ID; 149 description = methods[i].description; 150 displayName = methods[i].displayName; 151 cost = methods[i].cost; 152 upsDescription = methods[i].upsDescription; 153 154 var shippingMethodObj= { 155 id: id, 156 label: displayName, 157 amount: { currency: "USD", value: cost }, 158 selected: methods[i].selected, 159 } 160 shippingOptions.push(shippingMethodObj); 161 } 162 163 var orderSummary=data.response.orderSummary; 164 var displayItemsObj=[ 165 { 166 label: 'ITEM SUB TOTAL', 167 amount: { currency: 'USD', value: orderSummary.subTotal } 168 }, 169 { 170 label: 'SHIPPING', 171 amount: { currency: 'USD', value: orderSummary.shippingTotal } 172 }, 173 { 174 label: 'ORDER DISCOUNT', 175 amount: { currency: 'USD', value: orderSummary.orderDiscountTotal } 176 }, 177 { 178 label: 'SHIPPING DISCOUNT', 179 amount: { currency: 'USD', value: orderSummary.shippingDiscount } 180 }, 181 { 182 label: 'TAX', 183 amount: { currency: 'USD', value: orderSummary.taxTotal } 184 } 185 ] 186 187 } // end of if condition 188 details.shippingOptions=shippingOptions; 189 details.displayItems=displayItemsObj; 190 details.total.amount.value = orderSummary.orderTotal; 191 }, 192 error: function(jq,status,message){ 193 //alert('error') 194 } 195 }); 196 // If Not US 197 } else { 198 // Empty array indicates rejection of the address 199 details.shippingOptions = []; 200 return Promise.resolve(details); 201 } 202 return Promise.resolve(details); 203 }
203)(details, request.shippingAddress)); 204 }); // end of shippingaddresschange 205 206 207 208 request.addEventListener('shippingoptionchange', function(e) { 209 e.updateWith((function(details,option) { 210 var assignShippingMethodurl = app.util.appendParamsToUrl(app.urls.assignShippingMethod); 211 var params = {type: "POST", dataType: "json", async :false, shippingMethodID: option, returnObject: "ShippingOptions,OrderSummary" }; 212 213 $.ajax({ 214 url: assignShippingMethodurl, 215 data: params, 216 async: false, 217 success : function (data) { 218 219 if(data.response && data.response!=null){ 220 var shippingOptions = new Array(); 221 var methods=data.response.shippingMethods.list; 222 var cartModelJsonObjTest=JSON.stringify(data.response); 223 224 for( var i = 0; i < methods.length; i++ ) { 225 id = methods[i].ID; 226 description = methods[i].description; 227 displayName = methods[i].displayName; 228 cost = methods[i].cost; 229 upsDescription = methods[i].upsDescription; 230 var shippingMethodObj= { 231 id: id, 232 label: displayName, 233 amount: { currency: "USD", value: cost }, 234 selected: methods[i].selected, 235 } 236 shippingOptions.push(shippingMethodObj); 237 } 238 239 var orderSummary=data.response.orderSummary; 240 var displayItemsObj=[ 241 { 242 label: 'ITEM SUB TOTAL', 243 amount: { currency: 'USD', value: orderSummary.subTotal } 244 }, 245 { 246 label: 'SHIPPING', 247 amount: { currency: 'USD', value: orderSummary.shippingTotal } 248 }, 249 { 250 label: 'ORDER DISCOUNT', 251 amount: { currency: 'USD', value: orderSummary.orderDiscountTotal } 252 }, 253 { 254 label: 'SHIPPING DISCOUNT', 255 amount: { currency: 'USD', value: orderSummary.shippingDiscount } 256 }, 257 { 258 label: 'TAX', 259 amount: { currency: 'USD', value: orderSummary.taxTotal } 260 } 261 ] 262 } //end of if condition 263 details.shippingOptions=shippingOptions; 264 details.displayItems=displayItemsObj; 265 details.total.amount.value = orderSummary.orderTotal; 266 }, 267 error: function(jq,status,message){ 268 //alert('error') 269 } 270 }); 271 return Promise.resolve(details); 272 })(details,request.shippingOption )); 273 }); // end of shippingoptionchange 274 275 276 request.show().then(function(result) { 277 var resultJsonData=JSON.stringify(result); 278 var ajaxJsonData = JSON.parse(resultJsonData); 279 var samsungPayUrl = app.util.appendParamsToUrl(app.urls.samsungPayUrl); 280 281 $.post(samsungPayUrl, {samsungPayRequestData:resultJsonData }, function (result) { 282 283 if(result!=null && result=='200'){ 284 document.samsungPayMinicartForm.submit(); 285 }else{ 286 // jquery(".order-promotions_Samsungpay").text("Please try again:"); 287 // jquery(".order-promotions_Samsungpay").show(); 288 } 289 } //end of post method 290 ); 291 292 }); 293 }); 294 } 295 296 app.samsungpay = { 297 init : function () { 298 samsungpayCheckout(); 299 } 300 }; 301 302 }(window.app = window.app || {}, jQuery)); 303 $(document).ready(function() { 304 app.samsungpay.init(); 305 });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.