- Scan ID:
- 4aef6545-922b-45f7-976d-d9303da574bbFinished
- Submitted URL:
- https://tmn.oneRedirected
- Report Finished:
Links · 2 found
The outgoing links identified from the page
Link | Text |
---|---|
https://emn178.github.io/online-tools/sha256.html | emn178.github.io/online-tools/sha256.html |
https://t.me/tmnone_cc | t.me/tmnone_cc |
JavaScript Variables · 11 found
Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope
Name | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
$ | function |
jQuery | function |
Sweetalert2 | function |
SweetAlert | function |
Swal | function |
sweetAlert | function |
swal | function |
Console log messages · 8 found
Messages logged to the web console
Type | Category | Log |
---|---|---|
warning | dom |
|
warning | dom |
|
warning | dom |
|
warning | dom |
|
verbose | dom |
|
verbose | dom |
|
verbose | dom |
|
error | network |
|
HTML
The raw HTML body of the page
<!DOCTYPE html><html lang="en-US"><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>tmn.one</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async="" defer=""></script>
<script src="https://fastly.jsdelivr.net/npm/sweetalert2@10"></script><style>.swal2-popup.swal2-toast{flex-direction:column;align-items:stretch;width:auto;padding:1.25em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;margin:0 .625em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container{padding:.625em 0 0}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex:1;flex-basis:auto!important;align-self:stretch;width:auto;height:2.2em;height:auto;margin:0 .3125em;margin-top:.3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}</style>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/@mdi/[email protected]/css/materialdesignicons.min.css">
<style>
:root {
--input-color: #607bb9;
--input-border: #CDD9ED;
--input-background: #fff;
--input-placeholder: #4b5f85;
--input-border-focus: #275EFE;
--group-color: var(--input-color);
--group-border: var(--input-border);
--group-background: #EEF4FF;
--group-color-focus: #fff;
--group-border-focus: var(--input-border-focus);
--group-background-focus: #678EFE;
}
.form-field {
display: block;
width: 100%;
padding: 8px 16px;
line-height: 25px;
font-size: 14px;
font-weight: 500;
font-family: inherit;
border-radius: 6px;
-webkit-appearance: none;
color: var(--input-color);
border: 1px solid var(--input-border);
background: var(--input-background);
transition: border 0.3s ease;
}
.form-field::-moz-placeholder {
color: var(--input-placeholder);
}
.form-field:-ms-input-placeholder {
color: var(--input-placeholder);
}
.form-field::placeholder {
color: var(--input-placeholder);
}
.form-field:focus {
outline: none;
border-color: var(--input-border-focus);
}
.form-group {
display: flex;
width: 100%;
justify-content: center;
}
.form-group>span,
.form-group .form-field {
white-space: nowrap;
display: block;
}
.form-group>span:not(:first-child):not(:last-child),
.form-group .form-field:not(:first-child):not(:last-child) {
border-radius: 0;
}
.form-group>span:not(:first-child):not(:last-child),
.form-group .form-field:first-child:last-child {
border-radius: 6px 6px 6px 6px;
}
.form-group>span:first-child,
.form-group .form-field:first-child {
border-radius: 6px 0 0 6px;
}
.form-group>span:last-child,
.form-group .form-field:last-child {
border-radius: 0 6px 6px 0;
}
.form-group>span:not(:first-child),
.form-group .form-field:not(:first-child) {
margin-left: -1px;
}
.form-group .form-field {
position: relative;
z-index: 1;
flex: 1 1 auto;
width: 1%;
margin-top: 0;
margin-bottom: 0;
}
.form-group>span {
text-align: center;
padding: 8px 12px;
font-size: 14px;
line-height: 25px;
min-width: 150px;
color: var(--group-color);
background: var(--group-background);
border: 1px solid var(--group-border);
transition: background 0.3s ease, border 0.3s ease, color 0.3s ease;
}
.form-group:focus-within>span {
color: var(--group-color-focus);
background: var(--group-background-focus);
border-color: var(--group-border-focus);
}
html {
box-sizing: border-box;
-webkit-font-smoothing: antialiased;
}
* {
box-sizing: inherit;
}
*:before,
*:after {
box-sizing: inherit;
}
body {
min-height: 100vh;
font-family: Tahoma, Arial;
display: flex;
/*justify-content: center;*/
align-items: center;
flex-direction: column;
background: #F5F9FF;
color: var(--group-color);
}
body .form-group {
/*max-width: 360px;*/
}
body .form-group:not(:last-child) {
margin-bottom: 15px;
}
.widget {
text-align: center;
}
.mainwidget {
margin-top: 50px;
text-align: center;
display: none;
}
.memberwidget,
.registerwidget {
display: none;
}
.menu_tab {
width: 800px;
margin: 10px;
text-align: center;
}
fieldset {
padding: 15px;
border: 1px solid var(--group-color);
border-radius: 8px;
}
th,
td {
padding: 10px;
}
select {
padding: 10px;
}
</style>
</head>
<body>
<div id="login_form" class="mainwidget" style="display: block;">
<!-- <div>6 มิ.ย. 2564 ได้ทำการแก้ไขให้ใช้งานได้แล้ว สมาชิกจะได้รับวันใช้งานชดเชย 7 วัน</div> -->
<div class="widget">
<fieldset>
<legend>เข้าสู่ระบบสมาชิก</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์โทรศัพท์</span>
<input class="form-field" type="text" id="username" placeholder="08xxxxxxxx">
</div>
<div class="form-group">
<span>รหัสผ่าน</span>
<input class="form-field" type="password" id="password">
</div>
<div class="form-group">
<div class="cf-turnstile" data-sitekey="0x4AAAAAAAGL2PrskAxM0sSY"><div><input type="hidden" name="cf-turnstile-response" id="cf-chl-widget-bk18v_response"></div></div>
</div>
<div class="form-group">
<input class="form-field" type="button" id="login_submit" value="เข้าสู่ระบบสมาชิก">
</div>
</div>
</fieldset>
<fieldset style="margin-top: 10px;">
<legend>ยังไม่เป็นสมาชิก ?</legend>
<div class="form-group">
<input class="form-field" type="button" id="register_btn" value="สมัครสมาชิกใหม่">
</div>
</fieldset>
</div>
</div>
<div id="register_form" class="mainwidget" style="display: none;">
<div class="widget registerwidget" id="register_stage_1">
<fieldset>
<legend>สมัครสมาชิก</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์โทรศัพท์</span>
<input class="form-field" type="text" id="register_username" placeholder="08xxxxxxxx">
</div>
<div class="form-group">
<div id="register_recaptcha"></div>
</div>
<div class="form-group">
<input class="form-field register_submit" type="button" value="ส่ง OTP">
</div>
</div>
</fieldset>
</div>
<div class="widget registerwidget" id="register_stage_2">
<fieldset>
<legend>สมัครสมาชิก</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์โทรศัพท์</span>
<input class="form-field" type="text" id="register_username" readonly="">
</div>
<div class="form-group">
<span>Ref.</span>
<input class="form-field" type="text" id="register_otp_ref" readonly="">
</div>
<div class="form-group">
<span>OTP</span>
<input class="form-field" type="text" id="register_otp" placeholder="เช่น 123456">
</div>
<div class="form-group">
<input class="form-field register_submit" type="button" value="ยืนยัน OTP">
</div>
</div>
</fieldset>
</div>
<div class="widget registerwidget" id="register_stage_3">
<fieldset>
<legend>สมัครสมาชิก</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์โทรศัพท์</span>
<input class="form-field" type="text" id="register_username" readonly="">
</div>
<div class="form-group">
<span>รหัสผ่าน</span>
<input class="form-field" type="password" id="register_password">
</div>
<div class="form-group">
<span>ยืนยันรหัสผ่าน</span>
<input class="form-field" type="password" id="register_password2">
</div>
<div class="form-group">
<input class="form-field register_submit" type="button" value="สมัครสมาชิก">
</div>
</div>
</fieldset>
</div>
</div>
<div id="member_panel" class="mainwidget" style="display: none;">
<div class="widget">
<fieldset>
<legend><span class="mdi mdi-account-multiple"></span> ระบบสมาชิก</legend>
<div class="controlgroup-vertical">
<div class="menu_tab">ยอดเงินคงเหลือ <span id="member_current_balance"></span> บาท</div>
<div class="menu_tab">
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_api_keys"><span class="mdi mdi-format-list-numbered"></span> จัดการเบอร์ Wallet</button>
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_cashin"><span class="mdi mdi-currency-usd"></span> เติมเงิน</button>
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_cashin_history"><span class="mdi mdi-history"></span> ประวัติการเติมเงิน</button>
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_api"><span class="mdi mdi-connection"></span> API</button>
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_logout"><span class="mdi mdi-logout"></span> ออกจากระบบ</button>
</div>
<div id="menu_div_api_keys" class="menu_tab memberwidget">
<div class="menu_tab">TMMOne Class อัพเดทล่าสุด 2024-09-17 18:00</div>
<div style="margin: 10px">
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_api_keys_add"><span class="mdi mdi-plus-box"></span> เพิ่มเบอร์ Wallet (รหัสผ่าน)</button>
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_api_keys_with_face_add"><span class="mdi mdi-plus-box"></span> เพิ่มเบอร์ Wallet (สแกนใบหน้า)</button>
</div>
<div id="menu_div_api_keys_list" class="widget">
<table id="menu_div_api_keys_list_table" style="width: 100%; background-color: var(--group-background);">
<thead>
<tr>
<th>Key ID</th>
<th>เบอร์ Wallet</th>
<th>เพิ่มวันที่</th>
<th>หมดอายุ</th>
<th class="text-center">จัดการ</th>
</tr>
</thead>
<tbody id="account">
</tbody>
</table>
</div>
</div>
<div id="menu_div_cashin" class="menu_tab memberwidget">
<div class="controlgroup-vertical">
<div class="form-group">
<span>วิธีการชำระเงิน</span>
<select class="form-field" id="cashin_channel"></select>
</div>
<div id="menu_div_cashin_refs" style="margin-bottom: 15px"></div>
<div class="form-group">
<div id="cashin_recaptcha"></div>
</div>
<div class="form-group">
<input class="form-field" type="button" id="cashin_submit" value="ชำระเงิน">
</div>
</div>
</div>
<div id="menu_div_cashin_history" class="menu_tab memberwidget">
<div id="menu_div_cashin_history_list" class="widget">
<table id="menu_div_cashin_history_list_table" style="width: 100%; background-color: var(--group-background);">
<thead>
<tr>
<th>Payment ID</th>
<th>ช่องทาง</th>
<th>ข้อมูล</th>
<th>สถานะ</th>
<th>วัน/เวลา</th>
</tr>
</thead>
<tbody id="cashin_history">
</tbody>
</table>
</div>
</div>
<div id="menu_div_api" class="menu_tab memberwidget">
<div class="menu_tab">Access Token <span id="member_access_token" style="font-weight:bold"></span></div>
<div>
<!-- <h4>PHP (Linux x86/64 , ต้องรองรับ shell_exec)</h4>
<h4>กรุณารันคำสั่ง chmod +x curl-impersonate-chrome หลังการติดตั้ง</h4> -->
<button class="ui-button ui-widget ui-corner-all" id="menu_btn_api_download"><span class="mdi mdi-cloud-download"></span> ดาวน์โหลด TMNOne Class (TMNOne.rar)</button>
</div>
<textarea style="width:100%;height:550px;margin: 10px"><?php
require_once('TMNOne.php');
$_TMN = array();
$_TMN['tmn_key_id'] = '3'; //Key ID จากระบบ TMNOne
$_TMN['mobile_number'] = '0800000000'; //เบอร์ Wallet
$_TMN['login_token'] = 'L-xxxxxxxx-1xxx-4xxx-8xxx-89186d786db5'; //login_token จากขั้นตอนการเพิ่มเบอร์ Wallet
$_TMN['pin'] = 'xxxxxx'; //PIN 6 หลักของ Wallet
$_TMN['tmn_id'] = 'tmn.10000000000'; //tmn_id จากขั้นตอนการเพิ่มเบอร์ Wallet
$TMNOne = new TMNOne();
$TMNOne->setData($_TMN['tmn_key_id'], $_TMN['mobile_number'], $_TMN['login_token'], $_TMN['tmn_id']);
//$TMNOne->setProxy('proxy_ip:proxy_port', 'proxy_username', 'proxy_password'); //เปิดใช้งาน HTTP Proxy สำหรับเชื่อมต่อกับระบบของ Wallet
$TMNOne->loginWithPin6($_TMN['pin']); //Login เข้าระบบ Wallet ด้วย PIN
$balance = $TMNOne->getBalance(); //ตรวจสอบยอดเงินคงเหลือ
var_dump($TMNOne->fetchTransactionHistory(date('Y-m-d',time()-86400), date('Y-m-d',time()+86400))); //ดึงรายการเงินเข้าออก
var_dump($TMNOne->fetchTransactionInfo('umk1678000000')); //ดึงข้อมูล transaction จาก report_id
?></textarea>
</div>
</div>
</fieldset>
</div>
</div>
<div id="member_api_keys_add" style="display: none;">
<div class="stage_1">
<div class="widget">
<fieldset>
<legend><span class="mdi mdi-account-multiple"></span> เพิ่มเบอร์ Wallet</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์ Wallet</span>
<input class="form-field" type="text" id="wallet_username" placeholder="08xxxxxxxx">
</div>
<div class="form-group">
<span>รหัสผ่าน (SHA-256)</span>
<input class="form-field" type="text" id="wallet_password" placeholder="">
</div>
<div style="font-size: small;margin: 5px">SHA256(เบอร์ Wallet + รหัสผ่าน Wallet)<br>เช่น
SHA256(0812345678password123)<br>สามารถคำนวณ SHA-256 ได้ที่<br><a href="https://emn178.github.io/online-tools/sha256.html" target="_blank">emn178.github.io/online-tools/sha256.html</a></div>
<div class="form-group">
<div id="recaptcha"></div>
</div>
</div>
</fieldset>
</div>
</div>
<div class="stage_2">
<div class="widget">
<fieldset>
<legend><span class="mdi mdi-account-multiple"></span> เพิ่มเบอร์ Wallet</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์ Wallet</span>
<input class="form-field" type="text" id="wallet_username" readonly="">
</div>
<div class="form-group">
<span>OTP Reference</span>
<input class="form-field" type="text" id="wallet_otp_reference" readonly="">
</div>
<div class="form-group">
<span>OTP</span>
<input class="form-field" type="text" id="wallet_otp" placeholder="เช่น 123456">
</div>
<div class="form-group">
<div id="recaptcha"></div>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div id="member_api_keys_with_face_add" style="display: none;">
<div class="stage_1">
<div class="widget">
<fieldset>
<legend><span class="mdi mdi-account-multiple"></span> เพิ่มเบอร์ Wallet</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์ Wallet</span>
<input class="form-field" type="text" id="wallet_username" maxlength="10" placeholder="08xxxxxxxx">
</div>
<div class="form-group">
<span>PIN 6 หลัก</span>
<input class="form-field" type="text" id="wallet_pin" maxlength="6" placeholder="123456">
</div>
<div class="form-group">
<span>ภาพเซลฟี่หน้าตรง</span>
<input class="form-field" type="file" id="selfie_image" accept=".jpg,.jpeg">
</div>
<div><button class="ui-button ui-widget ui-corner-all menu_btn_image_resizer"><span class="mdi mdi-tooltip-image"></span> บริการตัดขนาดไฟล์ภาพ</button></div>
<div style="font-size: small;margin: 5px; color: #ff0000">ภาพเซลฟี่จะต้องเป็นประเภท JPEG ที่มีขนาด 480x853 เท่านั้น
โดยจะต้องเห็นทุกส่วนของใบหน้ารวมถึงลำคอ การบีบอัดสัดส่วนของภาพให้ผอมลงหรืออ้วนขึ้น อาจส่งให้การยืนยันตนไม่สำเร็จ
</div>
<div style="font-size: small;margin: 5px"><img id="selfie_image_example" src="assets/img/selfie.jpg" width="240" height="426"></div>
<div class="form-group">
<div id="recaptcha"></div>
</div>
</div>
</fieldset>
</div>
</div>
<div class="stage_2">
<div class="widget">
<fieldset>
<legend><span class="mdi mdi-account-multiple"></span> เพิ่มเบอร์ Wallet</legend>
<div class="controlgroup-vertical">
<div class="form-group">
<span>เบอร์ Wallet</span>
<input class="form-field" type="text" id="wallet_username" readonly="">
</div>
<div class="form-group">
<span>OTP Reference</span>
<input class="form-field" type="text" id="wallet_otp_reference" readonly="">
</div>
<div class="form-group">
<span>OTP</span>
<input class="form-field" type="text" id="wallet_otp" placeholder="เช่น 123456">
</div>
<div class="form-group price_denomination">
</div>
<div class="form-group">
<div id="recaptcha"></div>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div>Telegram <a href="https://t.me/tmnone_cc" target="_blank" style="font-weight:bold">t.me/tmnone_cc</a></div>
<script>
const api_url = "https://api.tmn.one/api.php"
let access_token = ""
let price_denomination = []
let register_stage = 1
let register_recaptcha, register_session_id
const Init = () => {
access_token = window.localStorage.getItem("access_token")
if (access_token == null || !access_token.length) {
clearSession()
showLoginForm()
}
else {
let response_body = APIConnect({
"scope": "member",
"cmd": "check_balance",
"data": {
"access_token": access_token
}
})
response_body.then((response_body) => {
$("#member_current_balance").text(response_body.available_balance)
$("#member_access_token").text(access_token);
$("#member_panel").show()
memberLoadApiKeys()
}
).catch((message) => {
clearSession()
showLoginForm()
})
}
}
const APIConnect = (request_data) => {
return new Promise(function (resolve, reject) {
$.ajax({
type: "POST",
crossDomain: true,
dataType: 'json',
url: api_url,
contentType: 'application/json',
headers: { 'X-API-Version': '202109071944' },
data: JSON.stringify(request_data),
success: function (result) {
if (result.code == 403) {
clearSession()
window.location.reload(true)
}
else if (result.code == 200) {
resolve(result)
}
reject(result.message + " (" + result.code + ")")
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(errorThrown)
reject(errorThrown)
}
})
})
}
const clearSession = () => {
window.localStorage.clear()
}
const showLoginForm = () => {
$('.mainwidget').hide()
$("#login_form").show()
}
const showSuccess = (title, message) => {
if (title.length == 0) {
title = "สำเร็จ"
}
return Swal.fire({
icon: 'success',
title: title,
html: message,
})
}
const showError = (title, message) => {
if (title.length == 0) {
title = "เกิดข้อผิดพลาด"
}
return Swal.fire({
icon: 'error',
title: title,
html: message,
})
}
const memberLoadApiKeys = () => {
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "list",
"data": {
"access_token": access_token
}
})
response_body.then((response_body) => {
$("#menu_div_api_keys").show()
if (response_body.list.length == 0) {
$("#menu_div_api_keys_list").text("ท่านยังไม่มีเบอร์ Wallet ในระบบ")
$("#menu_div_api_keys_list_table").hide()
}
else {
$("#menu_div_api_keys_list_table").show()
$("#account").empty()
response_body.list = response_body.list.reverse();
response_body.list.forEach(row => $("#account").append('<tr><td>' + row.key_id + '</td><td>' + row.msisdn + '</td><td>' + row.created + '</td><td>' + row.expire + '</td><td><button class="ui-button ui-widget ui-corner-all menu_btn_api_keys_renew" data-keyid="' + row.key_id + '" data-msisdn="' + row.msisdn + '"><span class="mdi mdi-autorenew"></span> ต่ออายุ</button> <button class="ui-button ui-widget ui-corner-all menu_btn_api_keys_delete" data-keyid="' + row.key_id + '" data-msisdn="' + row.msisdn + '"><span class="mdi mdi-delete-forever"></span> ลบ</button></td></tr>'))
}
memberLoadPriceDenomination()
}
).catch((message) => {
showError("", message)
})
}
const memberLoadPriceDenomination = () => {
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "price_denomination",
"data": {
"access_token": access_token
}
})
response_body.then((response_body) => {
price_denomination = response_body.price_denomination
}
).catch((message) => {
price_denomination = []
console.log(message)
})
setTimeout(memberLoadPriceDenomination, 60000);
}
$(document).ready(function () {
Init()
$('#register_btn').click(function (e) {
$('.mainwidget').hide()
$('.registerwidget').hide()
$("#register_form").show()
$('#register_stage_1').show()
register_recaptcha = turnstile.render('#register_recaptcha', { 'sitekey': '0x4AAAAAAAGL2PrskAxM0sSY' })
register_stage = 1
})
$('.register_submit').click(function (e) {
if (register_stage == 1) {
if (typeof turnstile.getResponse(register_recaptcha) == "undefined" || turnstile.getResponse(register_recaptcha).length == 0) {
showError("", "กรุณายืนยันว่าฉันไม่ใช่โปรแกรมอัตโนมัติ")
return
}
let response_body = APIConnect({
"scope": "register",
"cmd": "request_otp",
"cf-turnstile-response": turnstile.getResponse(register_recaptcha),
"data": {
"msisdn": $("#register_username").val(),
}
})
response_body.then((response_body) => {
showSuccess("", "ส่ง OTP สำเร็จ")
register_stage = 2
$('.registerwidget').hide()
$('#register_stage_2').show()
$("#register_stage_2").find('#register_otp_ref').val(response_body.otp_ref)
$("#register_stage_2").find('#register_otp').val("")
$("#register_stage_2").find('#register_username').val(response_body.msisdn)
register_session_id = response_body.session_id
}
).catch((message) => {
turnstile.reset(register_recaptcha);
showError("", message)
})
}
else if (register_stage == 2) {
let response_body = APIConnect({
"scope": "register",
"cmd": "verify_otp",
"data": {
"session_id": register_session_id,
"otp": $("#register_otp").val(),
}
})
response_body.then((response_body) => {
showSuccess("", "ยืนยัน OTP สำเร็จ")
register_stage = 3
$('.registerwidget').hide()
$('#register_stage_3').show()
$("#register_stage_3").find('#register_username').val(response_body.msisdn)
register_session_id = response_body.session_id
}
).catch((message) => {
showError("", message)
})
}
else if (register_stage == 3) {
if ($('#register_password').val() != $('#register_password2').val()) {
showError("", "รหัสผ่านไม่ตรงกัน")
return
}
let response_body = APIConnect({
"scope": "register",
"cmd": "create_user",
"data": {
"session_id": register_session_id,
"password": $("#register_password").val(),
}
})
response_body.then((response_body) => {
register_session_id = ''
showSuccess("", "สมัครสมาชิกใหม่สำเร็จ").then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
clearSession()
window.location.reload(true)
}
})
}
).catch((message) => {
showError("", message)
})
}
})
$("#login_submit").click(function (e) {
if (typeof turnstile.getResponse() == "undefined" || turnstile.getResponse().length == 0) {
showError("", "กรุณายืนยันว่าฉันไม่ใช่โปรแกรมอัตโนมัติ")
return
}
let response_body = APIConnect({
"scope": "login",
"cmd": "authen",
"cf-turnstile-response": turnstile.getResponse(),
"data": {
"msisdn": $("#username").val(),
"password": $("#password").val(),
}
})
response_body.then((response_body) => {
window.localStorage.setItem("access_token", response_body.access_token)
window.localStorage.setItem("allow_add_api_keys", response_body.allow_add_api_keys)
showSuccess("", "เข้าสู่ระบบสมาชิกสำเร็จ<div style=\'color:#ff0000;display:none\'>ประกาศ 28 ก.พ. 67 - tmn.one ขอยกเลิกช่องทางเติมเงินด้วยบัตรเงินสด Razer Gold PIN ตั้งแต่วันที่ 3 มี.ค. 2567 เป็นต้นไป</div>").then((result) => {
if (result.isConfirmed) {
window.location.reload(true)
}
})
}
).catch((message) => {
turnstile.reset();
showError("", message)
})
})
let cashin_channels
$("#menu_btn_cashin").click(function (e) {
$(".memberwidget").hide()
let response_body = APIConnect({
"scope": "member",
"cmd": "cashin_channel",
"data": {
"access_token": access_token,
}
})
response_body.then((response_body) => {
cashin_channels = response_body.channels
$("#cashin_channel").empty()
cashin_channels.forEach(row => $('#cashin_channel').append($('<option>', { value: row.name, text: row.label })))
$('#menu_div_cashin').show()
$('#cashin_channel').change()
}
).catch((message) => {
showError("", message)
})
})
$("#menu_btn_cashin_history").click(function (e) {
$(".memberwidget").hide()
let response_body = APIConnect({
"scope": "member",
"cmd": "cashin_channel",
"data": {
"access_token": access_token,
}
})
response_body.then((response_body) => {
cashin_channels = response_body.channels
cashin_channels.forEach(row => $('#cashin_channel').append($('<option>', { value: row.name, text: row.label })))
response_body = APIConnect({
"scope": "member",
"cmd": "cashin_history",
"data": {
"access_token": access_token,
}
})
response_body.then((response_body) => {
$("#menu_div_cashin_history").show()
if (response_body.list.length == 0) {
$("#menu_div_cashin_history_list").text("ท่านยังไม่มีเบอร์ Wallet ในระบบ")
$("#menu_div_cashin_history_list_table").hide()
}
else {
$("#menu_div_cashin_history_list_table").show()
$("#cashin_history").empty()
response_body.list.forEach(row => {
cashin_channels.forEach(channel => {
if (channel.name == row.channel) {
row.channel = channel.label
return
}
})
$("#cashin_history").append('<tr><td>' + row.pay_id + '</td><td>' + row.channel + '</td><td>' + row.data + '</td><td>' + row.status + '</td><td style="font-size: x-small">ทำรายการ ' + row.created + '<br />สำเร็จ ' + row.processed + '</td></tr>')
})
memberLoadPriceDenomination()
}
}
).catch((message) => {
showError("", message)
})
}
).catch((message) => {
showError("", message)
})
})
let cashin_recaptcha = false;
$('#cashin_submit').click(function (e) {
let data = {
"access_token": access_token,
"channel": $('#cashin_channel').val(),
}
let regex_passed = true
$('.regex_input').each(function () {
var regex = new RegExp($(this).data('regex'));
if (!regex.test($(this).val())) {
showError("", "กรุณาระบุ " + $(this).data('label') + ' ให้ถูกต้อง')
regex_passed = false
return
}
else {
data[$(this).attr('id')] = $(this).val()
}
});
let cashin_recaptcha_resposnse = "";
if (cashin_recaptcha)
{
if(typeof turnstile.getResponse(cashin_recaptcha) == "undefined" || turnstile.getResponse(cashin_recaptcha).length == 0)
{
showError("", "กรุณายืนยันว่าฉันไม่ใช่โปรแกรมอัตโนมัติ")
return
}
cashin_recaptcha_resposnse = turnstile.getResponse(cashin_recaptcha)
}
if (regex_passed) {
let response_body = APIConnect({
"scope": "member",
"cmd": "cashin",
"cf-turnstile-response": cashin_recaptcha_resposnse,
"data": data
})
response_body.then((response_body) => {
if(typeof response_body.redirect_url != "undefined" && response_body.redirect_url)
{
window.location.href = response_body.redirect_url;
}
else if(typeof response_body.html != "undefined" && response_body.html)
{
showSuccess(response_body.title, response_body.html)
}
else
{
showSuccess("", "รับรายการชำระเงินสำเร็จ")
}
}
).catch((message) => {
if(cashin_recaptcha)
{
turnstile.reset(cashin_recaptcha);
}
showError("", message)
})
}
})
$('#cashin_channel').change(function (e) {
$('#menu_div_cashin_refs').html('')
if(cashin_recaptcha)
{
turnstile.remove(cashin_recaptcha)
}
cashin_recaptcha = false;
cashin_channels.forEach(row => {
if (row.name == $(this).val()) {
row.refs.forEach(refs => {
let ref_data = "";
if(refs.type == "html")
{
ref_data = '<div class="form-group">' + refs.html + '</div>';
}
else if(refs.type == "text")
{
ref_data = '<div class="form-group"><span>' + refs.label + '</span><div class="form-field" data-label="' + refs.label + '">' + refs.text + '</div></div>';
}
else if(refs.type == "textinput")
{
ref_data = '<div class="form-group"><span>' + refs.label + '</span><input class="form-field regex_input" type="text" id="' + refs.name + '" data-label="' + refs.label + '" data-regex="' + refs.regex + '" /></div>';
}
$('#menu_div_cashin_refs').append(ref_data)
})
if(row.enable_recaptcha)
{
cashin_recaptcha = turnstile.render('#cashin_recaptcha', { 'sitekey': '0x4AAAAAAAGL2PrskAxM0sSY' })
}
}
})
console.log(cashin_recaptcha)
})
$("#menu_btn_api").click(function (e) {
$(".memberwidget").hide()
$("#menu_div_api").show()
})
$("#menu_btn_api_keys").click(function (e) {
$(".memberwidget").hide()
memberLoadApiKeys()
})
$("#menu_btn_api_keys_add").click(function (e) {
let allow_add_api_keys = window.localStorage.getItem("allow_add_api_keys")
/*if(allow_add_api_keys != "1")
{
alert("ขออภัย ขณะนี้ปิดรับลูกค้าเพิ่มชั่วคราว ขออภัยในความไม่สะดวกเป็นอย่างสูง");
return;
}*/
let recaptcha_stage_1, recaptcha_stage_2
Swal.fire({
html: '<div id="member_api_keys_add_temp">' + $("#member_api_keys_add").find('.stage_1').html() + '</div>',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'ขอ OTP จากระบบ Wallet',
denyButtonText: 'ยกเลิก',
didOpen: () => { recaptcha_stage_1 = turnstile.render($('#member_api_keys_add_temp').find('#recaptcha').get(0), { 'sitekey': '0x4AAAAAAAGL2PrskAxM0sSY' }) },
preConfirm: function () {
if (typeof turnstile.getResponse(recaptcha_stage_1) == "undefined" || turnstile.getResponse(recaptcha_stage_1).length === 0) {
Swal.showValidationMessage("กรุณายืนยันว่าฉันไม่ใช่โปรแกรมอัตโนมัติ")
}
else if (!/0[0-9]{9}$/.test($('#member_api_keys_add_temp').find('#wallet_username').val())) {
Swal.showValidationMessage("กรุณาระบุ เบอร์ Wallet ให้ถูกต้อง")
}
else if ($('#member_api_keys_add_temp').find('#wallet_password').val().length != 64) {
Swal.showValidationMessage("กรุณาระบุ รหัสผ่าน (SHA-256) ให้ถูกต้อง (จะต้องคำนวณ SHA256 ก่อน)")
}
}
}).then((result) => {
let wallet_username, wallet_password, wallet_otp_reference
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
wallet_username = $('#member_api_keys_add_temp').find('#wallet_username').val()
wallet_password = $('#member_api_keys_add_temp').find('#wallet_password').val()
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "add",
"data": {
"access_token": access_token,
"stage": 1,
"username": wallet_username,
"password": wallet_password
},
"cf-turnstile-response": turnstile.getResponse(recaptcha_stage_1),
})
response_body.then((response_body) => {
wallet_otp_reference = response_body.otp_reference
Swal.fire({
html: '<div id="member_api_keys_add_temp">' + $("#member_api_keys_add").find('.stage_2').html() + '</div>',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'ยืนยัน OTP',
denyButtonText: 'ยกเลิก',
didOpen: () => {
$('#member_api_keys_add_temp').find('#wallet_username').val(wallet_username)
$('#member_api_keys_add_temp').find('#wallet_otp_reference').val(wallet_otp_reference)
recaptcha_stage_1 = turnstile.render($('#member_api_keys_add_temp').find('#recaptcha').get(0), { 'sitekey': '0x4AAAAAAAGL2PrskAxM0sSY' })
},
preConfirm: function () {
if (typeof turnstile.getResponse(recaptcha_stage_1) == "undefined" || turnstile.getResponse(recaptcha_stage_1).length === 0) {
Swal.showValidationMessage("กรุณายืนยันว่าฉันไม่ใช่โปรแกรมอัตโนมัติ")
}
else if ($('#member_api_keys_add_temp').find('#wallet_otp').val().length != 6) {
Swal.showValidationMessage("กรุณาระบุ OTP ให้ถูกต้อง")
}
}
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "add",
"data": {
"access_token": access_token,
"stage": 2,
"username": wallet_username,
"password": wallet_password,
"otp_reference": wallet_otp_reference,
"otp": $('#member_api_keys_add_temp').find('#wallet_otp').val()
},
"cf-turnstile-response": turnstile.getResponse(recaptcha_stage_1),
})
response_body.then((response_body) => {
memberLoadApiKeys()
$("#member_current_balance").text(response_body.balance)
showSuccess("เพิ่มเบอร์ Wallet สำเร็จ", 'กรุณาบันทึกข้อมูลด้านล่างเพื่อใช้กับ API เนื่องจากทาง TMNOne จะไม่เก็บข้อมูลดังกล่าว<div style="margin:10px; padding:10px; background-color: #CDD9ED;"><b>login_token</b> ' + response_body.login_token + '</div><div style="margin:10px; padding:10px; background-color: #CDD9ED;"><b>tmn_id</b> ' + response_body.tmn_id + '</div>')
}
).catch((message) => {
turnstile.reset();
showError("", message)
})
}
})
}
).catch((message) => {
turnstile.reset();
showError("", message)
})
}
})
})
$("#menu_btn_api_keys_with_face_add").click(function (e) {
let allow_add_api_keys = window.localStorage.getItem("allow_add_api_keys")
/*if(allow_add_api_keys != "1")
{
alert("ขออภัย ขณะนี้ปิดรับลูกค้าเพิ่มชั่วคราว ขออภัยในความไม่สะดวกเป็นอย่างสูง");
return;
}*/
let selfie_image = new Image();
let selfie_image_content = "";
selfie_image.onload = () => {
console.log("test");
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.height = selfie_image.naturalHeight;
canvas.width = selfie_image.naturalWidth;
ctx.drawImage(selfie_image, 0, 0);
selfie_image_content = canvas.toDataURL('image/jpeg', 1).split(',').pop();
}
let recaptcha_stage_1, recaptcha_stage_2
Swal.fire({
html: '<div id="member_api_keys_add_temp">' + $("#member_api_keys_with_face_add").find('.stage_1').html() + '</div>',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'ขอ OTP จากระบบ Wallet',
denyButtonText: 'ยกเลิก',
didOpen: () => { recaptcha_stage_1 = turnstile.render($('#member_api_keys_add_temp').find('#recaptcha').get(0), { 'sitekey': '0x4AAAAAAAGL2PrskAxM0sSY' }) },
preConfirm: function () {
if (typeof turnstile.getResponse(recaptcha_stage_1) == "undefined" || turnstile.getResponse(recaptcha_stage_1).length === 0) {
Swal.showValidationMessage("กรุณายืนยันว่าฉันไม่ใช่โปรแกรมอัตโนมัติ")
return;
}
if (!/0[0-9]{9}$/.test($('#member_api_keys_add_temp').find('#wallet_username').val())) {
Swal.showValidationMessage("กรุณาระบุ เบอร์ Wallet ให้ถูกต้อง")
return;
}
if (!/[0-9]{6}$/.test($('#member_api_keys_add_temp').find('#wallet_pin').val())) {
Swal.showValidationMessage("กรุณาระบุ PIN ให้ถูกต้อง")
return;
}
if ($('#member_api_keys_add_temp').find('#selfie_image')[0].files.length == 0) {
Swal.showValidationMessage("กรุณาเลือก ภาพเซลฟี่หน้าตรง ให้ถูกต้อง")
selfie_image_content = "";
return;
}
if (selfie_image.width != 480 || selfie_image.height != 853) {
Swal.showValidationMessage("กรุณาเลือก ภาพเซลฟี่หน้าตรง ที่มีขนาด 480x853 (ไฟล์ที่เลือกมีขนาด " + selfie_image.width + "x" + selfie_image.height + ")")
selfie_image_content = "";
return;
}
}
}).then((result) => {
let wallet_username, wallet_pin, wallet_otp_reference, selfie_image_hash, shield_id, shield_session_id;
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
wallet_username = $('#member_api_keys_add_temp').find('#wallet_username').val();
wallet_pin = $('#member_api_keys_add_temp').find('#wallet_pin').val();
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "add",
"data": {
"flow": "face",
"access_token": access_token,
"stage": 1,
"username": wallet_username,
"image": selfie_image_content
},
"cf-turnstile-response": turnstile.getResponse(recaptcha_stage_1),
})
response_body.then((response_body) => {
wallet_otp_reference = response_body.otp_reference;
selfie_image_hash = response_body.image_hash;
shield_id = response_body.shield_id;
shield_session_id = response_body.shield_session_id;
if(response_body.need_purchase)
{
let price_denomination_options = '<span>อายุการใช้งาน</span><select id="price" class="form-field">'
price_denomination.forEach(row => price_denomination_options = price_denomination_options + '<option value="' + row.price + '">' + row.price + ' บาท ได้รับ ' + row.days + ' วัน</option>')
price_denomination_options = price_denomination_options + '</select>'
$("#member_api_keys_with_face_add").find('.price_denomination').html(price_denomination_options)
}
else
{
$("#member_api_keys_with_face_add").find('.price_denomination').hide();
}
Swal.fire({
html: '<div id="member_api_keys_add_temp">' + $("#member_api_keys_with_face_add").find('.stage_2').html() + '</div>',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'ยืนยัน OTP',
denyButtonText: 'ยกเลิก',
didOpen: () => {
$('#member_api_keys_add_temp').find('#wallet_username').val(wallet_username)
$('#member_api_keys_add_temp').find('#wallet_otp_reference').val(wallet_otp_reference)
recaptcha_stage_1 = turnstile.render($('#member_api_keys_add_temp').find('#recaptcha').get(0), { 'sitekey': '0x4AAAAAAAGL2PrskAxM0sSY' })
},
preConfirm: function () {
if (typeof turnstile.getResponse(recaptcha_stage_1) == "undefined" || turnstile.getResponse(recaptcha_stage_1).length === 0) {
Swal.showValidationMessage("กรุณายืนยันว่าฉันไม่ใช่โปรแกรมอัตโนมัติ")
}
else if ($('#member_api_keys_add_temp').find('#wallet_otp').val().length != 6) {
Swal.showValidationMessage("กรุณาระบุ OTP ให้ถูกต้อง")
}
}
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
const price = $("#member_api_keys_with_face_add").find('#price').val();
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "add",
"data": {
"flow": "face",
"access_token": access_token,
"stage": 2,
"username": wallet_username,
"pin": wallet_pin,
"image": selfie_image_content,
"image_hash": selfie_image_hash,
"otp_reference": wallet_otp_reference,
"shield_id": shield_id,
"shield_session_id": shield_session_id,
"price": price,
"otp": $('#member_api_keys_add_temp').find('#wallet_otp').val()
},
"cf-turnstile-response": turnstile.getResponse(recaptcha_stage_1),
})
response_body.then((response_body) => {
memberLoadApiKeys()
showSuccess("เพิ่มเบอร์ Wallet สำเร็จ", 'กรุณาบันทึกข้อมูลด้านล่างเพื่อใช้กับ API เนื่องจากทาง TMNOne จะไม่เก็บข้อมูลดังกล่าว<div style="margin:10px; padding:10px; background-color: #CDD9ED;"><b>login_token</b> ' + response_body.login_token + '</div><div style="margin:10px; padding:10px; background-color: #CDD9ED;"><b>tmn_id</b> ' + response_body.tmn_id + '</div>')
if(response_body.hasOwnProperty("balance"))
{
$("#member_current_balance").text(response_body.balance)
}
}
).catch((message) => {
turnstile.reset();
showError("", message)
})
}
})
}
).catch((message) => {
turnstile.reset();
showError("", message)
})
}
})
$('#member_api_keys_add_temp').find('#selfie_image').change(function (e) {
if($(this)[0].files.length > 0)
{
const image_object = window.URL.createObjectURL(e.target.files[0]);
selfie_image.src = image_object;
selfie_image.decode().then(() => {
window.URL.revokeObjectURL(image_object);
})
.catch((encodingError) => {
console.log(encodingError);
})
/*if(selfie_image.width != 480 || selfie_image.height != 853)
{
showError("", "กรุณาเลือก ภาพเซลฟี่หน้าตรง ที่มีขนาด 480x853 (ไฟล์ที่เลือกมีขนาด " + selfie_image.width + "x" + selfie_image.height + ")")
$('#member_api_keys_add_temp').find('#selfie_image').val("");
return;
}*/
$('#member_api_keys_add_temp').find('#selfie_image_example').attr('src', image_object);
console.log(selfie_image);
}
});
})
$(document).on('click', '.menu_btn_image_resizer', function (e) {
console.log("..");
window.open('https://www.tmn.one/image_resize.html', '_blank')
})
$("#menu_btn_logout").click(function (e) {
let response_body = APIConnect({
"scope": "member",
"cmd": "logout",
"data": {
"access_token": access_token
}
})
response_body.then((response_body) => {
clearSession()
window.location.reload(true)
}
).catch((message) => {
clearSession()
window.location.reload(true)
})
})
$('#menu_btn_api_download').click(function (e) {
window.location.href = 'https://www.tmn.one/TMNOne.php?t=' + Math.floor(Date.now() / 1000)
})
$(document).on('click', '.menu_btn_api_keys_renew', function (e) {
const key_id = $(this).data("keyid")
let price_denomination_options = '<select id="price">'
price_denomination.forEach(row => price_denomination_options = price_denomination_options + '<option value="' + row.price + '">' + row.price + ' บาท ได้รับ ' + row.days + ' วัน</option>')
price_denomination_options = price_denomination_options + '</select>'
Swal.fire({
title: 'ต่ออายุให้กับ ' + $(this).data("msisdn"),
html: 'ราคา ' + price_denomination_options,
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'ยืนยัน',
denyButtonText: 'ยกเลิก',
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "renew",
"data": {
"access_token": access_token,
"key_id": key_id,
"price": $("#price").val()
}
})
response_body.then((response_body) => {
memberLoadApiKeys()
$("#member_current_balance").text(response_body.balance)
showSuccess("", "ทำรายการต่ออายุสำเร็จ ยอดเงินคงเหลือ " + response_body.balance + " บาท")
}
).catch((message) => {
showError("", message)
})
}
})
})
$(document).on('click', '.menu_btn_api_keys_delete', function (e) {
const key_id = $(this).data("keyid")
Swal.fire({
html: 'ต้องการลบเบอร์ Wallet <b>' + $(this).data("msisdn") + "</b> ออกจากระบบหรือไม่ ?",
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'ยืนยัน',
denyButtonText: 'ยกเลิก',
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
let response_body = APIConnect({
"scope": "api_keys",
"cmd": "delete",
"data": {
"access_token": access_token,
"key_id": key_id,
}
})
response_body.then((response_body) => {
memberLoadApiKeys()
showSuccess("", "ลบเบอร์ Wallet ออกจากระบบสำเร็จ")
}
).catch((message) => {
showError("", message)
})
}
})
})
})
</script>
</body></html>