Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-07-2017, 14:33   #1
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
[Javascript] Problema Paypal Express Checkout

Buongiorno a tutti, spero di scrivere nella sezione giusta.
Un paio di settimane fa ho integrato il pagamento Express Checkout di paypal in un sito di e-commerce che ho realizzato (non parliamo di piattaforme come prestashop e simili, è una soluzione custom), e per circa una settimana ha funzionato senza problemi, poi improvvisamente ha smesso completamente di funzionare. La tipologia di integrazione che ho utilizzato è quella con checkout.js + server side rest, di cui potete trovare qui un esempio: https://developer.paypal.com/demo/ch...pattern/server
Di seguito il codice che ho utilizzato io (ometto per brevità il codice html completo, ma riporto integralmente la parte javascript):
Codice HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
	<head>
		<!-- CUT -->
		<script language="javascript" type="text/javascript" src="https://www.paypalobjects.com/api/checkout.js?ver=69"></script>
		<!-- CUT -->
	</head>
	<body style="">
		<!-- CUT -->
		<div id="paypal-button" style="float: right;"></div>
		<!-- CUT -->
	</body>
</html>
Codice:
$(function() {
	if ($('#paypal-button').length > 0) initExpressCheckout();
});

function initExpressCheckout() {
	paypal.Button.render({
        //env: 'sandbox',
        env: 'production',
        locale: 'it_IT',
		
		commit: true,
        
		payment: function() {
            return paypal.request.post(home + "azioni/create_payment.php", {
				id_ordine: id_ordine
			}).then(function(data) {
                return data.paymentID;
            });
        },
        
		onAuthorize: function(data, actions) {
            return paypal.request.post(home + "azioni/execute_payment.php", {
                id_ordine: id_ordine,
				paymentID: data.paymentID,
                payerID:   data.payerID
            }).then(function(data2) {
				if (data2.state == 'approved' || data2.name == 'DUPLICATE_TRANSACTION') {
					$('#paypal-button').hide().after('Il pagamento è stato confermato');
                } else {
					alert('Il pagamento non è andato a buon fine');
				}
            });
        },
		
		onError: function(err) {
            alert(err);
        }
    }, '#paypal-button');
}
Quello che accade è che il pulsante viene renderizzato ma quando lo clicco non succede assolutamente nulla.
Dopo qualche secondo che la pagina è stata caricata (anche se non premo il pulsante) vengono fuori i seguenti errori nella console javascript:
Codice:
checkout.js:5876 Uncaught TypeError: Cannot read property 'ref' of undefinedgetWindowByRef @ checkout.js:5876(anonymous function) @ checkout.js:5939(anonymous function) @ checkout.js:7073ChildComponent.setWindows @ checkout.js:3706ChildComponent @ checkout.js:3620Component.registerChild @ checkout.js:4129Component @ checkout.js:4100create @ checkout.js:6374modules../src/components/button/component.js @ checkout.js:8097__webpack_require__ @ checkout.js:11modules../src/components/button/index.js @ checkout.js:8532__webpack_require__ @ checkout.js:11modules../src/components/index.js @ checkout.js:9427__webpack_require__ @ checkout.js:11modules../src/api/rest.js @ checkout.js:7891__webpack_require__ @ checkout.js:11modules../src/api/index.js @ checkout.js:7783__webpack_require__ @ checkout.js:11modules../src/interface.js @ checkout.js:10347__webpack_require__ @ checkout.js:11modules../src/index.js @ checkout.js:10235__webpack_require__ @ checkout.js:11modules../src/load.js @ checkout.js:12281__webpack_require__ @ checkout.js:11modules../node_modules/Base64/base64.js @ checkout.js:38(anonymous function) @ checkout.js:39
promise.js:7Uncaught TypeError: Cannot read property 'Promise' of undefined../node_modules/xo-buttonjs/public/js/button/promise.js @ promise.js:7__webpack_require__ @ bootstrap bbe5750…:19../node_modules/xo-buttonjs/public/js/button/index.js @ index.js:3__webpack_require__ @ bootstrap bbe5750…:190 @ index.js:5__webpack_require__ @ bootstrap bbe5750…:190 @ bootstrap bbe5750…:39(anonymous function) @ bootstrap bbe5750…:39
button?env=production&locale.x=it_IT&version=4&uid=539265a272&style.color=gold&style.shape=pill&sty…:3555 Uncaught TypeError: window.preload is not a function(anonymous function) @ button?env=production&locale.x=it_IT&version=4&uid=539265a272&style.color=gold&style.shape=pill&sty…:3555
button?env=production&locale.x=it_IT&version=4&uid=539265a272&style.color=gold&style.shape=pill&sty…:3587 Uncaught TypeError: window.preload is not a function(anonymous function) @ button?env=production&locale.x=it_IT&version=4&uid=539265a272&style.color=gold&style.shape=pill&sty…:3587
button?env=production&locale.x=it_IT&version=4&uid=539265a272&style.color=gold&style.shape=pill&sty…:3602 Uncaught TypeError: window.preload is not a function(anonymous function) @ button?env=production&locale.x=it_IT&version=4&uid=539265a272&style.color=gold&style.shape=pill&sty…:3602
button?env=production&locale.x=it_IT&version=4&uid=539265a272&style.color=gold&style.shape=pill&sty…:3623 Uncaught TypeError: window.preloadComplete is not a function
Spero riusciate a darmi qualche dritta, ho già googolato senza successo
Grazie in anticipo a chi mi risponderà.
Daniele
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 24-07-2017, 19:07   #2
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ho risolto, è bastato copiare i tag nell'head dell'esempio esattamente come sono riportati. La cosa strana è che inizialmente funzionava... ma la cosa ancora più strana è che ora funziona anche ripristinando i tag come li avevo scritti io... mi sa che non comprenderò mai quali oscuri meccanismi si celano dietro questi bizzarri eventi, ma alla fine mi basta che funzioni. Grazie comunque a coloro che hanno cercato di venirne a capo.
Buona serata
Daniele
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Sale LAN, la Manovra 2027 introduce una ...
11 prezzi imperdibili in Amazon: non sol...
Giù i prezzi di Xiaomi 17T e Xiao...
Una tassa di 5,5 centesimi su ogni gigab...
Vuoi clonare un videogioco con l'IA? Cla...
Furto da 6,3 miliardi di dollari, Binanc...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:54.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v