Jump to content

Paiement par virement et retour arrière


Recommended Posts

Bonjour,

Je suis sur une plateforme 1.6.0.9, et propose paiement par CB via un système bancaire et paiement par virement.

Mon souci est que plusieurs utilisateurs valident leur commande par virement, et une fois arrivés sur la page de confirmation avec l'IBAN, semblent changer d'avis, reviennent en arrière, et choisissent le paiement par CB.

La page de choix de paiement, même avec un header bloquant la mise en cache, apparait de la même façon, alors que la commande a été traitée, et peuvent encore aller sur la page externe de paiement par CB.

Pour l'instant, j'ai placé ces éléments dans le header, et un petit javascript dans le corps, mais je trouve ca un peu moyen, car ceci revient à modifier l'historique du navigateur, et j'aurai préféré avoir un petit ajax par exemple, qui une fois arrivé sur la page de paiement, consulte en temps réel, l'état de la commande.

Je n'ai pas trouvé d'autres personnes ayant été confronté à ce problème, qui pourtant est un trou noir sur prestashop.

Avez vous de meilleurs solutions à proposer ?

Dans le header

{if $page_name == 'order'}
        	<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
			<meta http-equiv="Pragma" content="no-cache" />
			<meta http-equiv="Expires" content="0" />
        {/if}

Sur order-payment.tpl

<script type="text/javascript">
		{literal}
    		jQuery( document ).ready(function( $ ) {

				window.onunload = function(){};    

				function formatTime(t) {
					return t.getHours() + ':' + t.getMinutes() + ':' + t.getSeconds();
				}
				
				if (window.history.state != null && window.history.state.hasOwnProperty('historic')) {
					if (window.history.state.historic == true) {
						document.body.style.display = 'none';
						console.log('I was here before at ' + formatTime(window.history.state.last_visit));
						window.history.replaceState({historic: false}, '');
						window.location.reload();
					} else {
						console.log('I was forced to reload, but WELCOME BACK!');
						window.history.replaceState({
							historic  : true,
							last_visit: new Date()
						}, '');
					}
				} else {
					console.log('This is my first visit to ' + window.location.pathname);
					window.history.replaceState({
						historic  : true,
						last_visit: new Date()
					}, '');
				}
			});
		{/literal}
	</script>

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...