Skip to content

Commit

Permalink
DOT.js fix ajaxm
Browse files Browse the repository at this point in the history
  • Loading branch information
lleokaganov committed Mar 7, 2024
1 parent 306d8df commit 2281c12
Showing 1 changed file with 76 additions and 23 deletions.
99 changes: 76 additions & 23 deletions common/DOT.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,48 @@ chain: { // тут будет инфо, запрошенное от блокче

cx: {}, // а тут инфо от магазина

magento_init: function(cx) {
if(cx) DOT.cx = cx;

DOT.store = 'magento';

DOT.button_on=function(){
jQuery('body').trigger('processStop');
DOT.cx.magento_this.isPlaceOrderActionAllowed(true);
};
DOT.button_off=function(){
jQuery('body').trigger('processStart');
DOT.cx.magento_this.isPlaceOrderActionAllowed(false);
};

var p = window.checkoutConfig.payment.kalatorimax;
if(!p) DOT.error('magento system error #0104');
DOT.mainjs = p.assets_base_url+"/"; // "https://magento.zymologia.fi/static/version1709653373/frontend/Magento/luma/en_US/Alzymologist_KalatoriMax/js"
DOT.cx.ajax_url = p.store_base_url+"alzymologist/payment/index"; // 'https://magento.zymologia.fi/alzymologist/payment/index'; // window.checkoutConfig.staticBaseUrl
DOT.health_url = DOT.cx.ajax_url+"?health=1";

DOT.onpaid=function() {
DOT.button_on();
DOT.cx.magento_this.getPlaceOrderDeferredObject().done(
function () {
DOT.cx.magento_this.afterPlaceOrder();
if(DOT.cx.magento_this.redirectAfterPlaceOrder) {
DOT.cx.redirectOnSuccessAction.execute();
}
}
);
};

DOT.init();
},

opencart3_run: function(path) {
DOT.store = 'opencart3';

DOT.button_on=function(){ $('#button-confirm').button('reset'); };
DOT.button_off=function(){ $('#button-confirm').button('loading'); };

DOT.path=DOT.mainjs=path;
DOT.mainjs=path;
DOT.ajaxm = DOT.mainjs+'../../theme/default/image/polkadot/ajaxm.gif';

DOT.init();
Expand Down Expand Up @@ -57,7 +92,7 @@ presta_init: function(cx) {
// cx.ajax_url=cx.wpath.replace(/\/views$/g,'/')+'ajax.php';
}
DOT.cx=cx;
DOT.path = cx.wpath;
// DOT.path = cx.wpath;
DOT.mainjs = cx.wpath+'/js/';
DOT.ajaxm = cx.wpath+'/img/ajaxm.gif';

Expand Down Expand Up @@ -125,6 +160,9 @@ presta_init: function(cx) {
button_on: function(){},
button_off: function(){},

// ajax_headers: false, // хедеры, подставляемые в платежный запрос аякса
// ajax_headers_info: false, // хедеры, подставляемые в информационный запрос аякса

class_warning: 'alert alert-danger',

h: function(s){
Expand Down Expand Up @@ -188,12 +226,17 @@ daemon_get_info: async function() {

if(!DOT.health_url && !DOT.cx.ajax_url) return DOT.error('DOT plugin error 10802: empty cx.ajax_url');
const data = JSON.stringify({ order_id: 0, price: 0 });
var s = await DOT.AJAX( (DOT.health_url?DOT.health_url:DOT.cx.ajax_url), data );
var s = await DOT.AJAX( (DOT.health_url?DOT.health_url:DOT.cx.ajax_url), data, DOT.ajax_headers_info );
try { var json=JSON.parse(s); } catch(e) { return DOT.error("Json error: ["+DOT.h(s)+"]"); }

// патчим старый формат
for(var n in json) { if(n.substring(0,7)=='daemon_') { json[n.substring(7)]=json[n]; } }

// Если данные заказа есть только на бэкэнде, самое время их от него получить и запомнить
if(json.store_total) DOT.cx.total = json.store_total;
if(json.store_order_id) DOT.cx.order_id = json.store_order_id;
if(json.store_currency) DOT.cx.currency = json.store_currency;

if(json.wss) DOT.daemon.wss=json.wss;
else {
if(json.error) return DOT.error("Error "+json.error+(json.error_message?" ("+json.error_message+")":''));
Expand Down Expand Up @@ -318,7 +361,7 @@ all_submit: async function(y) {
var data = JSON.stringify({ order_id: cx.id, price: DOT.total() });

// можно указать свой альтернативный AJAX для особых уродцев типа WooCommerce
var s = await DOT[( DOT.AJAX_ALTERNATIVE ? 'AJAX_ALTERNATIVE' : 'AJAX' )]( cx.ajax_url, data );
var s = await DOT[( DOT.AJAX_ALTERNATIVE ? 'AJAX_ALTERNATIVE' : 'AJAX' )]( cx.ajax_url, data, DOT.ajax_headers );

var json=DOT.ajax_process_errors(s); if(!json) return false;
var ans = (''+json.result).toLowerCase(); // (waiting, paid)
Expand Down Expand Up @@ -382,6 +425,7 @@ progress: {
d.style.padding = '0px 2px 1px 2px';
d.style.width = '100%';
d.style.height = '20px';
d.style.zIndex = '99999';
document.body.appendChild(d);
}

Expand All @@ -398,12 +442,11 @@ progress: {
},
},

AJAX: async function(url,data) {
const r = await fetch(
url, { method:'POST', mode:'cors', credentials:'include', headers: [
["Content-Type", "application/json"],
], body: data
});
AJAX: async function(url,data,headers) {
if(!headers) headers=[];
headers.push(["Content-Type", "application/json"]);
headers.push(["X-Requested-With", "XMLHttpRequest"]);
const r = await fetch(url,{ method:'POST',mode:'cors',credentials:'include',headers:headers,body: data});
if(!r.ok) return DOT.error("Error: " + r.status);
return await r.text();
},
Expand Down Expand Up @@ -561,24 +604,28 @@ AJAX: async function(url,data) {
DOT.Talert('clear');
DOT.button_on();

// load JS - первая необходимая часть для кошельков, остальное загрузим позже для ускорения
if(DOT.mainjs) await DOT.LOADS_promice([
DOT.mainjs+'bundle-polkadot-util.js',
DOT.mainjs+'bundle-polkadot-util-crypto.js',
DOT.mainjs+'bundle-polkadot-extension-dapp.js',

DOT.mainjs+'bundle-polkadot-types.js',
DOT.mainjs+'bundle-polkadot-api.js',
DOT.mainjs+'bundle-polkadot-keyring.js', // west
DOT.mainjs+'identicon.js'
],1);

var originalDefine = window.define;
// delete window.define; // йобаные патчи для Magento
window.define=undefined;
if(DOT.mainjs) await DOT.LOADS_promice([
DOT.mainjs+'bundle-polkadot-util.js',
DOT.mainjs+'bundle-polkadot-util-crypto.js',
DOT.mainjs+'bundle-polkadot-extension-dapp.js',

DOT.mainjs+'bundle-polkadot-types.js',
DOT.mainjs+'bundle-polkadot-api.js',
DOT.mainjs+'bundle-polkadot-keyring.js', // west
DOT.mainjs+'identicon.js'
],1);
window.define = originalDefine; // йобаные патчи для Magento

try {
// connect Wallets
var wallets=await polkadotExtensionDapp.web3Enable('dotpay');
DOT.wallets=wallets;

// console.log('wallets='+typeof(wallets));

var r={'':[
"<label style='display:flex;text-align:left;' balanced='1'><input style='margin-right: 5px;' id='dot_payment_manual' name='dot_addr' type='radio' value='QR'>Manual</label>",
]};
Expand Down Expand Up @@ -624,7 +671,7 @@ AJAX: async function(url,data) {
}

// if(wal_length != DOT.wal_length) { // менять страницу только если что-то изменилось
console.log('wallet list');
// console.debug('wallet list');

DOT.wal_length = wal_length;
var op=''; for(var wal in r) {
Expand All @@ -646,6 +693,9 @@ AJAX: async function(url,data) {
else DOT.identicon_init();

} catch(ee) {

console.log('init error: '+ee);

if(!DOT.et) { DOT.et=0; }
if(++DOT.et < 60) setTimeout(DOT.init,1000); // setTimeout(wallet_start,1000);
}
Expand Down Expand Up @@ -767,6 +817,7 @@ AJAX: async function(url,data) {
if(sync) s.async=false;
s.onerror=( typeof(err)=='function' ? err : function(e){ DOT.error('File not found: '+e.src); } );
s.onload=function(e){ e=e.target;

DOT.LOADES[e.getAttribute('orign')]=1;
var k=1; for(var i of u) {
if(!DOT.LOADES[i]){ k=0; break; }
Expand Down Expand Up @@ -794,4 +845,6 @@ AJAX: async function(url,data) {
// alert('Copy: '+(DOT.h(e).replace(/\n/g,'<br>')) );
},

ajaxm: "data:image/gif;base64,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",

};

0 comments on commit 2281c12

Please sign in to comment.