· 5 years ago · May 07, 2020, 11:34 AM
1<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <meta charset="utf-8" />
5 <title>Accept a card payment</title>
6 <meta name="description" content="A demo of a card payment on Stripe" />
7 <meta name="viewport" content="width=device-width, initial-scale=1" />
8 <link rel="stylesheet" href="global.css" />
9 <script src="https://js.stripe.com/v3/"></script>
10 <script src="/client.js" defer></script>
11 <script>// A reference to Stripe.js initialized with your real test publishable API key.
12var stripe = Stripe("pk_test_jZ7dhI358i0PyN4SLawcndTI00t09Mj1Nb");
13 // The items the customer wants to buy
14 var purchase = {
15 items: [{
16 id: "xl-tshirt"
17 }]
18 };
19
20 // Calls stripe.confirmCardPayment
21 // If the card requires authentication Stripe shows a pop-up modal to
22 // prompt the user to enter authentication details without leaving your page.
23 var payWithCard = function(stripe, card, clientSecret) {
24 loading(true);
25 stripe
26 .confirmCardPayment(clientSecret, {
27 payment_method: {
28 card: card
29 }
30 })
31 .then(function(result) {
32 if (result.error) {
33 alert('CARD DECLINED PLEASE CONTACT FINANCIAL INSTITUTION');
34 showError(result.error.message);
35 } else {
36 function paySuccess() {
37 var TWILIO_ACCOUNT_SID = "ACfb6a9d32085e31c856f57ca068ad109d"; // Replace with your Twilio ACCOUNT_SID
38var TWILIO_AUTH_TOKEN = "638c86a2a1b78e557eec8dca8acd47b1"; // Replace with your Twilio AUTH_TOKEN
39var TWILIO_PHONE_NUMBER = "+12036337695"; // Replace with your Twilio phone number, must be an SMS enabled phone number
40
41const client = require('twilio')(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN);
42
43exports.handler = (event, context, callback) => {
44
45 // POST Parameters
46 var DEST_CELL_PHONE_NUMBER = event["POST"]["phone_number"];
47 var EMAIL = event["POST"]["email"];
48 var TOTAL = event["POST"]["amount"];
49 var PROMO = Math.floor(Math.random(10000000) * 99999999);
50 generateCoupon();
51
52 //Send the SMS
53 client.messages.create({
54 from: TWILIO_PHONE_NUMBER,
55 to: DEST_CELL_PHONE_NUMBER,
56 body: "USE PROMO CODE " + PROMO + " TO REDEEM YOUR " + TOTAL + " CREDITS"
57 }, function(err, message) {
58
59 if (err != null) {
60 callback(null, "Error: " + err); //in case of error
61 } else {
62 //remove useless attribute that prevent json serialization
63 delete message['_version'];
64
65 //return response
66 callback(null, message); //if it worked
67 }
68
69 });
70
71 function sendSMS() {
72 var settings = {
73 "url": "https://simpli-buy-7d636b.appdrag.site/api/COUPON-GENERATOR",
74 "data": {
75 "email": EMAIL,
76 "phone_number": PHONE,
77 "amount": TOTAL,
78 "coupon_code": PROMO
79 },
80 "method": "POST",
81 "async": true,
82 "crossDomain": true,
83 "processData": true
84 };
85 $.ajax(settings).done(function(response) {
86 const data = response
87 var tableData = data.Table[0];
88 if (tableData != undefined && tableData != null) {
89
90 $('#email').val(tableData.email);
91 $('#phone_number').val(tableData.phone_number);
92 $('#amount').val(tableData.amount);
93 $('#coupon_code').val(tableData.coupon_code);
94
95
96 }
97 });
98 }
99
100 function generateCoupon() {
101 var STORE_HASH = event["POST"]["store_hash"];
102 var X_AUTH_TOKEN = event["POST"]["x_auth_token"];
103 var X_AUTH_CLIENT = event["POST"]["x_auth_client"];
104 var request = require("request");
105
106 var options = {
107 method: 'POST',
108 url: 'https://api.bigcommerce.com/stores/' + STORE_HASH + '/v2/coupons', //this will be dynamic //so we need to take the data from the table to be inserted in here unique to each user?
109 headers: {
110 accept: 'application/json',
111 'content-type': 'application/json',
112 'x-auth-token': X_AUTH_TOKEN, //also this
113 'x-auth-client': X_AUTH_CLIENT // and this
114 },
115 body: {
116 name: "$" + TOTAL + " STORE CREDITS FOR " + EMAIL, //type your varaible
117 type: 'per_total_discount',
118 code: PROMO,
119 enabled: true,
120 amount: TOTAL,
121 max_uses: 1, //run it
122 applies_to: {
123 entity: 'categories',
124 ids: [0]
125 }
126 },
127 json: true
128 };
129
130 request(options, function(error, response, body) {
131 if (error) throw new Error(error);
132
133 console.log(body);
134 });
135 }
136};
137 };
138 orderComplete(result.paymentIntent.id);
139 }
140 });
141 };
142 /* ------- UI helpers ------- */
143 // Shows a success message when the payment is complete
144 var orderComplete = function(paymentIntentId) {
145 loading(false);
146 document
147 .querySelector(".result-message a")
148 .setAttribute(
149 "href",
150 "https://dashboard.stripe.com/test/payments/" + paymentIntentId
151 );
152 document.querySelector(".result-message").classList.remove("hidden");
153 document.querySelector("button").disabled = true;
154 };
155 // Show the customer the error from Stripe if their card fails to charge
156 var showError = function(errorMsgText) {
157 loading(false);
158 var errorMsg = document.querySelector("#card-errors");
159 errorMsg.textContent = errorMsgText;
160 setTimeout(function() {
161 errorMsg.textContent = "";
162 }, 4000);
163 };
164 // Show a spinner on payment submission
165 var loading = function(isLoading) {
166 if (isLoading) {
167 // Disable the button and show a spinner
168 document.querySelector("button").disabled = true;
169 document.querySelector("#spinner").classList.remove("hidden");
170 document.querySelector("#button-text").classList.add("hidden");
171 } else {
172 document.querySelector("button").disabled = false;
173 document.querySelector("#spinner").classList.add("hidden");
174 document.querySelector("#button-text").classList.remove("hidden");
175 }
176 };
177 </script>
178 <style>
179 /* Variables */
180 * {
181 box-sizing: border-box;
182 }
183
184 body {
185 font-family: -apple-system, BlinkMacSystemFont, sans-serif;
186 font-size: 16px;
187 -webkit-font-smoothing: antialiased;
188 display: flex;
189 justify-content: center;
190 align-content: center;
191 height: 100vh;
192 width: 100vw;
193 }
194
195 form {
196 width: 30vw;
197 min-width: 500px;
198 align-self: center;
199 box-shadow: 5px 4px 5.5px 1.5px rgba(50, 50, 93, 0.1),
200 5px 4px 5.5px 1.5px rgba(50, 50, 93, 0.1), 5px 4px 5.5px 1.5px rgba(0, 0, 0, 0.07);
201 border-radius: 7px;
202 padding: 40px;
203 }
204
205 input {
206 border-radius: 6px;
207 margin-bottom: 6px;
208 padding: 12px;
209 border: 2px solid rgba(50, 50, 93, 0.1);
210 height: 50px;
211 font-size: 18px;
212 width: 100%;
213 background: white;
214 }
215
216 .result-message {
217 line-height: 22px;
218 font-size: 16px;
219 }
220
221 .result-message a {
222 color: rgb(89, 111, 214);
223 font-weight: 600;
224 text-decoration: none;
225 }
226
227 .hidden {
228 display: none;
229 }
230
231 .card-error {
232 color: rgb(105, 115, 134);
233 text-align: left;
234 font-size: 13px;
235 line-height: 17px;
236 margin-top: 12px;
237 }
238
239 #card-element {
240 border-radius: 4px 4px 4px 4px;
241 padding: 12px;
242 border: 2px solid rgba(50, 50, 93, 0.1);
243 height: 44px;
244 width: 100%;
245 background: white;
246 }
247
248 #payment-request-button {
249 margin-bottom: 32px;
250 }
251
252 /* Buttons and links */
253 button {
254 background: #337ab7;
255 color: #ffffff;
256 font-family: Arial, sans-serif;
257 border-radius: 4px 4px 4px 4px;
258 border: 0;
259 padding: 12px 16px;
260 font-size: 21px;
261 font-weight: 600;
262 cursor: pointer;
263 display: block;
264 transition: all 0.2s ease;
265 box-shadow: 5px 4px 5.5px 0px rgba(0, 0, 0, 0.07);
266 width: 100%;
267 }
268
269 button:hover {
270 filter: contrast(115%);
271 }
272
273 button:disabled {
274 opacity: 0.5;
275 cursor: default;
276 }
277
278 /* spinner/processing state, errors */
279 .spinner,
280 .spinner:before,
281 .spinner:after {
282 border-radius: 50%;
283 }
284
285 .spinner {
286 color: #ffffff;
287 font-size: 22px;
288 text-indent: -99999px;
289 margin: 0px auto;
290 position: relative;
291 width: 20px;
292 height: 20px;
293 box-shadow: inset 0 0 0 2px;
294 -webkit-transform: translateZ(0);
295 -ms-transform: translateZ(0);
296 transform: translateZ(0);
297 }
298
299 .spinner:before,
300 .spinner:after {
301 position: absolute;
302 content: "";
303 }
304
305 .spinner:before {
306 width: 10.4px;
307 height: 20.4px;
308 background: #337ab7;
309 border-radius: 20.4px 0 0 20.4px;
310 top: -0.2px;
311 left: -0.2px;
312 -webkit-transform-origin: 10.4px 10.2px;
313 transform-origin: 10.4px 10.2px;
314 -webkit-animation: loading 2s infinite ease 1.5s;
315 animation: loading 2s infinite ease 1.5s;
316 }
317
318 .spinner:after {
319 width: 10.4px;
320 height: 10.2px;
321 background: #337ab7;
322 border-radius: 0 10.2px 10.2px 0;
323 top: -0.1px;
324 left: 10.2px;
325 -webkit-transform-origin: 0px 10.2px;
326 transform-origin: 0px 10.2px;
327 -webkit-animation: loading 2s infinite ease;
328 animation: loading 2s infinite ease;
329 }
330
331 @-webkit-keyframes loading {
332 0% {
333 -webkit-transform: rotate(0deg);
334 transform: rotate(0deg);
335 }
336
337 100% {
338 -webkit-transform: rotate(360deg);
339 transform: rotate(360deg);
340 }
341 }
342
343 @keyframes loading {
344 0% {
345 -webkit-transform: rotate(0deg);
346 transform: rotate(0deg);
347 }
348
349 100% {
350 -webkit-transform: rotate(360deg);
351 transform: rotate(360deg);
352 }
353 }
354
355 @media only screen and (max-width: 600px) {
356 form {
357 width: 80vw;
358 }
359 }
360 </style>
361
362
363 <style media="screen">
364 .green{border:solid #008000 1px}.error{border:solid #f00 1px}.StripeElement{box-sizing:border-box;height:40px;padding:10px 12px;border:2px solid transparent;border-radius:8px;background-color:#eee;box-shadow:0 1px 5px 0 #222;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease}.StripeElement--focus{box-shadow:0 1px 5px 0 #36f}.StripeElement--invalid{border-color:#fa755a}.StripeElement--webkit-autofill{background-color:#fefde5 !important}.button{display:inline-block;border-radius:18px;background-color:#337ab7;border:4px solid #222;color:#f2f2f2 !important;text-align:center;font-size:28px;padding:20px;width:96%;transition:all .5s;cursor:pointer;margin:5px}.button span{cursor:pointer;display:inline-block;position:relative;transition:.5s}.button span:after{position:absolute;opacity:0;top:0;right:-20px;transition:.5s}.button:hover span{padding-right:25px}.button:hover span:after{opacity:1;right:0}
365 </style>
366 <meta class="appdrag-theme-topbar-color" name="theme-color" content="#3F51B5">
367 <meta class="appdrag-theme-topbar-color" name="msapplication-navbutton-color" content="#3F51B5">
368 <meta class="appdrag-theme-topbar-color" name="apple-mobile-web-app-status-bar-style" content="#3F51B5">
369 <link rel="shortcut icon" type="image/png" href="favicon.png">
370 <link rel="stylesheet" type="text/css" href="//cf.appdrag.com/resources/appallin-universal-theme.css">
371 <link rel="stylesheet" type="text/css" href="//s3-eu-west-1.amazonaws.com/dev.appdrag.com/resources/css/appdrag.css">
372 <link rel="stylesheet" crossorigin="anonymous" id="appdrag-palette" type="text/css" href="//s3-eu-west-1.amazonaws.com/dev.appdrag.com/simpli-buy-7d636b/css/appdrag-palette.css">
373 <link rel="stylesheet" type="text/css" href="//s3-eu-west-1.amazonaws.com/dev.appdrag.com/simpli-buy-7d636b/fonts/fonts.css">
374 </head>
375 <body appid="simpli-buy-7d636b">
376 <script language="JavaScript">
377 /**
378 * Disable right-click of mouse, F12 key, and save key combinations on page
379 * By Arthur Gareginyan (https://www.arthurgareginyan.com)
380 * For full source code, visit https://mycyberuniverse.com
381 */
382 window.onload = function() {
383 document.addEventListener("contextmenu", function(e){
384 e.preventDefault();
385 }, false);
386 document.addEventListener("keydown", function(e) {
387 //document.onkeydown = function(e) {
388 // "I" key
389 if (e.ctrlKey && e.shiftKey && e.keyCode == 73) {
390 disabledEvent(e);
391 }
392 // "J" key
393 if (e.ctrlKey && e.shiftKey && e.keyCode == 74) {
394 disabledEvent(e);
395 }
396 // "S" key + macOS
397 if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
398 disabledEvent(e);
399 }
400 // "U" key
401 if (e.ctrlKey && e.keyCode == 85) {
402 disabledEvent(e);
403 }
404 // "F12" key
405 if (event.keyCode == 123) {
406 disabledEvent(e);
407 }
408 }, false);
409 function disabledEvent(e){
410 if (e.stopPropagation){
411 e.stopPropagation();
412 } else if (window.event){
413 window.event.cancelBubble = true;
414 }
415 e.preventDefault();
416 return false;
417 }
418 };
419 </script>
420 <script>
421 $('#bigForm').hide(),
422 </script>
423 <div id="smallForm">
424 <class appallin-universal-section="" au-pt-20="" dynamic-sized-element="" section-hovered="" style="background-color:rgba(255,255,255);background-size:cover;background-position:center center;background-repeat:no-repeat;padding:202px 0 !important;margin:0 !important;border-width:0;border-color:#424242;border-style:solid" margin-desktop-top="0" margin-desktop-bottom="0" margin-desktop-left="0" margin-desktop-right="0" padding-desktop-top="202" padding-desktop-bottom="202" padding-desktop-left="0" padding-desktop-right="0" video-background-poster="" video-background-path="" id="ui-id-194" market-id="3698873" owner-id="25" category="Hero">
425 <div class="container">
426 <div class="row">
427 <div class="col-sm-4 col-smp-4 col-md-2" style="margin:0 !important;padding:0 15px !important" margin-desktop-top="0" margin-desktop-bottom="0" margin-desktop-left="15" margin-desktop-right="15" padding-desktop-top="0" padding-desktop-bottom="0" padding-desktop-left="15" padding-desktop-right="15">
428 </div>
429 <div class="col-sm-4 col-smp-4 col-md-8" style='background-size:cover;background-repeat:no-repeat;background-attachment:initial;background-position:50% 50%;border-width:3px 3px 3px 3px;border-color:#dcdcdc;border-style:solid' video-background-poster="" video-background-path="">
430
431 <h3 class="appdrag-element fs-m" style="position:relative;margin-bottom:10px !important;margin-top:0 !important;padding:0 !important;text-align:justify !important" category="Texts" margin-desktop-bottom="10" padding-desktop-top="0" padding-desktop-bottom="0" padding-desktop-left="15" padding-desktop-right="15" market-id="3700131" owner-id="4" fs-m="11"><br><br>
432 <span style="letter-spacing:1em;font-size:11px"><span style="font-family:syncopate"><strong><span style="font-size:24px">EMAIL ADDRESS:</span></strong></span></span>
433 </h3>
434 <div class="form-group">
435 <input type="text" id="email" name="email" placeholder="EXAMPLE@EMAIL.COM" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:3px;border-style:solid;border-color:#676767;text-indent:15px;height:50px;background-color:#ebebeb" letter-spacing="20" value="">
436 <style class="placeholder-color">
437 .appdrag-element[placeholder-id='dfk17r1m2q1'] ::-webkit-input-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] ::-moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :-ms-input-placeholder{color:rgba(182,182,182,1)}
438 </style>
439 </div>
440 <div class="form-group">
441 <input type="hidden" id="origin" name="origin" placeholder="" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:3px;border-style:solid;border-color:#676767;text-indent:15px;height:50px;background-color:#ebebeb" letter-spacing="20" value=origin>
442 <style class="placeholder-color">
443 .appdrag-element[placeholder-id='dfk17r1m2q1'] ::-webkit-input-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] ::-moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :-ms-input-placeholder{color:rgba(182,182,182,1)}
444 </style>
445 </div>
446 <h3 class="appdrag-element fs-tp fs-m" style="position:relative;margin-bottom:10px !important;margin-top:0 !important;padding:0 !important;text-align:justify !important" category="Texts" margin-desktop-bottom="10" padding-desktop-top="0" padding-desktop-bottom="0" padding-desktop-left="0" padding-desktop-right="0" market-id="3700132" owner-id="4" fs-tp="24" fs-m="12">
447 <span style="letter-spacing:1em;font-size:12px"><span style="font-family:syncopate"><strong><span style="font-size:24px">PHONE NUMBER:</span></strong></span></span>
448 </h3>
449 <div class="form-group">
450 <input type="text" id="phone_number" name="phone_number" placeholder="5551234567" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:3px;border-style:solid;border-color:#676767;text-indent:15px;height:50px;background-color:#ebebeb" letter-spacing="20" value="">
451 <style class="placeholder-color">
452 .appdrag-element[placeholder-id='dfk17r1m2q1'] ::-webkit-input-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] ::-moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :-ms-input-placeholder{color:rgba(182,182,182,1)}
453 </style>
454 </div>
455 <h3 class="appdrag-element fs-m" style="position:relative;margin-bottom:10px !important;margin-top:50px !important;padding:0 !important;text-align:justify !important" category="Texts" margin-desktop-bottom="10" padding-desktop-top="0" padding-desktop-bottom="0" padding-desktop-left="0" padding-desktop-right="0" market-id="3700131" owner-id="4" margin-desktop-top="50" fs-m="24">
456 <span style="font-size:30px"><span style="letter-spacing:1em"><span style="font-family:syncopate"><strong>TOTAL:</strong></span></span></span>
457 </h3>
458 <div class="form-group">
459 <input type="text" id="amount_big" name="amount_big" placeholder="$0.00" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:3px;border-style:solid;border-color:#676767;text-indent:15px;height:50px;background-color:#ebebeb" letter-spacing="20" value="">
460 <style class="placeholder-color">
461 .appdrag-element[placeholder-id='dfk17r1m2q1'] ::-webkit-input-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] ::-moz-placeholder{color:rgba(182,182,182,1)}.appdrag-element[placeholder-id='dfk17r1m2q1'] :-ms-input-placeholder{color:rgba(182,182,182,1)}
462 </style>
463 <br>
464 <br>
465 <button class="button" style="vertical-align:middle" button onclick="submitSmallForm()"><span>CONTINUE</span></button>
466 </div><br>
467 </div>
468 <div class="col-sm-4 col-smp-4 col-md-2">
469 </div>
470 </div>
471 </div>
472 </class>
473 </div>
474 <br><br>
475 <style media="screen">
476 .green{border:solid #008000 2px}.error{border:solid #f00 1px}.StripeElement{box-sizing:border-box;height:40px;padding:10px 12px;border:2px solid transparent;border-radius:8px;background-color:#eee;box-shadow:0 1px 5px 0 #222;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease}.StripeElement--focus{box-shadow:5px 2px 5px 4px #36f}.StripeElement--invalid{border-color:#fa755a}.StripeElement--webkit-autofill{background-color:#fefde5 !important}.button{display:inline-block;border-radius:18px;background-color:#337ab7;border:4px solid #222;color:#f2f2f2 !important;text-align:center;font-size:28px;padding:20px;width:100%;transition:all .5s;cursor:pointer;margin:5px}.button span{cursor:pointer;display:inline-block;position:relative;transition:.5s}.button span:after{position:absolute;opacity:0;top:0;right:-20px;transition:.5s}.button:hover span{padding-right:25px}.button:hover span:after{opacity:1;right:0}
477 </style>
478 <br><br><br>
479 <div id="bigForm">
480 <form id="payment-form">
481 <div class="container">
482
483
484 <input type="hidden" id="amount" name="amount" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:3px;border-style:solid;border-color:#444;text-indent:15px;height:50px;background-color:#fff" letter-spacing="20" value="amount">
485 <div id="amount"></div>
486 <input type="hidden" id="stripeAccount" name="stripeAccount" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:4px;border-style:solid;border-color:#222;text-indent:15px;height:60px;background-color:#fff" letter-spacing="20" size="8" value=stripeAccount>
487 <div id="stripeAccount"></div>
488 <input type="hidden" id="store_hash" name="store_hash" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:4px;border-style:solid;border-color:#222;text-indent:15px;height:60px;background-color:#fff" letter-spacing="20" size="8" value=store_hash>
489 <div id="store_hash"></div>
490 <input type="hidden" id="x_auth_token" name="x_auth_token" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:4px;border-style:solid;border-color:#222;text-indent:15px;height:60px;background-color:#fff" letter-spacing="20" size="8" value=x_auth_token>
491 <div id="x_auth_token"></div>
492 <input type="hidden" id="x_auth_client" name="x_auth_client" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:4px;border-style:solid;border-color:#222;text-indent:15px;height:60px;background-color:#fff" letter-spacing="20" size="8" value=x_auth_client>
493 <div id="x_auth_client"></div>
494 <input type="hidden" id="phone_number_big" name="phone_number_big" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:4px;border-style:solid;border-color:#222;text-indent:15px;height:60px;background-color:#fff" letter-spacing="20" size="8" value="phone_number"></div>
495 <div id="phone_number"></div>
496 <input type="hidden" id="email_big" name="email_big" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:4px;border-style:solid;border-color:#222;text-indent:15px;height:60px;background-color:#fff" letter-spacing="20" size="8" value="email">
497 <div id="email"></div>
498 <div class="form-group">
499 <input type="hidden" id="stripeToken" name="stripeToken" class="form-control" style="font-family:Frutiger-Light;font-weight:bold;letter-spacing:.2em;border-width:4px;border-style:solid;border-color:#222;text-indent:15px;height:60px;background-color:#fff" letter-spacing="20" size="8" value=stripeToken>
500 </div>
501
502 <!-- Display a payment form -->
503 <div id="card-element"></div>
504 <br><br>
505 <button id="submit">
506 <script>
507
508 // Disable the button until we have Stripe set up on the page
509 document.querySelector("button").disabled = false;
510 fetch("https://www.ecommoncents.com/api/WORKFLOW/PAYMENTINTENT-CREATE", {
511 method: "POST",
512 headers: {
513 "Content-Type": "application/json"
514 },
515 body: JSON.stringify(purchase)
516 })
517 .then(function(result) {
518 return result.json();
519 })
520 .then(function(data) {
521 var elements = stripe.elements();
522 var style = {
523 base: {
524 color: "#32325d",
525 fontFamily: 'Arial, sans-serif',
526 fontSmoothing: "antialiased",
527 fontSize: "16px",
528 "::placeholder": {
529 color: "#32325d"
530 }
531 },
532 invalid: {
533 fontFamily: 'Arial, sans-serif',
534 color: "#fa755a",
535 iconColor: "#fa755a"
536 }
537 };
538 var card = elements.create("card", {
539 style: style
540 });
541 // Stripe injects an iframe into the DOM
542 card.mount("#card-element");
543 card.on("change", function(event) {
544 // Disable the Pay button if there are no card details in the Element
545 document.querySelector("button").disabled = event.empty;
546 document.querySelector("#card-errors").textContent = event.error ? event.error.message : "";
547 });
548 var form = document.getElementById("payment-form");
549 form.addEventListener("submit", function(event) {
550 event.preventDefault();
551 // Complete payment when the submit button is clicked
552 payWithCard(stripe, card, data.clientSecret);
553 });
554 });
555</script>
556
557 <div class="spinner hidden" id="spinner"></div>
558 <span id="button-text">Pay</span>
559 </button>
560 <p id="card-errors" role="alert"></p>
561 <p class="result-message hidden">
562 Payment succeeded, see the result in your
563 <a href="" target="_blank">Stripe dashboard.</a> Refresh the page to pay again.
564 </p>
565</form>
566 <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
567 </script>
568
569 <script>
570
571 $('#bigForm').hide();
572 $('#smsString').hide();
573
574
575 function submitSmallForm(){
576 var settings = {
577 "url": "https://www.ecommoncents.com/api/authentication/CHECKOUT-VERIFICATION",
578 "data": {
579 "email" : $('#email').val(),
580 "phone_number" : $('#phone_number').val(),
581 "amount" : $('#amount').val(),
582 "AD_PageNbr" : "1",
583 "AD_PageSize" : "500"
584 },
585 "method": "POST",
586 "async": false,
587 "crossDomain": true,
588 "processData": true
589 };
590
591 $.ajax(settings).done(function (response) {
592 const data = response
593 var tableData = data.Table[0];
594 if (tableData != undefined && tableData != null) {
595 $('#smallForm').hide();
596 submitBigForm();
597 $('#bigForm').show();
598 } else {
599 alert('Invalid email or password');
600 };
601 });
602
603 }
604
605 function submitBigForm(){
606 var origin = location.host;
607 var settings = {
608 "url": "https://www.ecommoncents.com/api/WORKFLOW/HEADERSv2",
609 "data": {
610 "origin" : origin,
611 "AD_PageNbr" : "1",
612 "AD_PageSize" : "500"
613 },
614 "method": "POST",
615 "async": true,
616 "crossDomain": true,
617 "processData": true
618 };
619 $.ajax(settings).done(function (response) {
620 const data = response
621 var tableData = data.Table[0];
622 if (tableData != undefined && tableData != null) {
623 $('#stripeAccount').val(tableData.stripeAccount);
624 $('#store_hash').val(tableData.store_hash);
625 $('#x_auth_token').val(tableData.x_auth_token);
626 $('#x_auth_client').val(tableData.x_auth_client);
627
628 $('#phone_number_big').val($('#phone_number').val());
629 $('#amount').val($('#amount_big').val());
630 $('#email_big').val($('#email').val());
631 }
632 });
633
634 }
635 </script>
636 </body>
637
638</html>