2016-03-16 3 views
0

J'ai une question sur le processus de paiement en utilisant un émulateur de passerelle. Je dois fournir toutes les variables à la passerelle et obtenir la réponse si la charge a été faite. Je peux faire la charge si toutes les données sont correctes, mais je ne sais pas comment recevoir la réponse de la passerelle, le manuel me donne un indice, la réponse fournira dans la variable "urlBack". Savez-vous comment obtenir des données à partir de cette passerelle?Réponse de la passerelle d'erreur

D'abord je traite toutes les dates en javascript puis j'envoie les informations en utilisant le code suivant, mais la réponse que je recevrai dans une autre page (https://acmax.mx/popup_2). Tout fonctionne très bien mais j'ai des problèmes avec la réponse de la passerelle.

Merci beaucoup

<form name="myPayTC" id="myPayTC" method="post" action="https://www.procom.prosa.com.mx/eMerchant/7727222_acmaxdemexico.jsp" onload='javascript:MyFrmOnLoad();'> 

    <input type="hidden" id="total" name="total" value='total'> 
    <input type="hidden" id="currency" name="currency" value="484"> 
    <input type="hidden" id="address" name="address" value="ACMAX"> 
    <input type="hidden" id="order_id" name="order_id" value='order_id'> 
    <input type="hidden" id="merchant" name="merchant" value="7727222"> 
    <input type="hidden" id="store" name="store" value="1234"> 
    <input type="hidden" id="term" name="term" value="001"> 
    <input type="hidden" id="digest" name="digest" value='valDigest'> 
    <input type="hidden" id="return_target" name="return_target" value="N/A"> 
    <!--<input type="hidden" id="urlBack" name="urlBack" value="https://acmax.mx/index.php?controller=ComercioResp">--> 
    <!--<input type="hidden" id="urlBack" name="urlBack" value="https://acmax.mx/es/checkout/confirm">--> 
    <input type="hidden" id="urlBack" name="urlBack" value="https://acmax.mx/popup_2"> 
    <!--<input type="hidden" id="urlBack" name="urlBack" value="http://acmax.mx/es/checkout/paymentmethod">--> 

    <p><img src="https://acmax.mx/themes/theme674/img//bankwire.jpg" alt="Pago por tarjeta de cr&eacute;dito/d&eacute;bito" width="86" height="54" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="pButton" value="Pago con Tarjeta de Cr&eacute;dito/D&eacute;bito" class="exclusive" style="font-size:14px; height:28px;"></p> 

    </form> 

Le code qui a le serveur est la suivante:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <HTML version="-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <HEAD> 
    <TITLE>Verificacion de Compra</TITLE> 
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> 
    </HEAD> 
    <BODY> 
    <form id="formars" name="formars" action="https://acmax.mx/popup_2" method="post"> 
    <input type="Hidden" name="EM_Response" value="denied"> 
    <input type="Hidden" name="EM_Total" value="102"> 
    <input type="Hidden" name="EM_OrderID" value="625"> 
    <input type="Hidden" name="EM_Merchant" value="7727222"> 
    <input type="Hidden" name="EM_Store" value="1234"> 
    <input type="Hidden" name="EM_Term" value="001"> 
    <input type="Hidden" name="EM_RefNum" value="initialrefnum"> 
    <input type="Hidden" name="EM_Auth" value="000000"> 
    <input type="Hidden" name="EM_Digest" value="initialdigest"> 

    <input type="Hidden" name="cc_number" value="0565"> 
    <input type="Hidden" name="total" value="102"> 
    <input type="Hidden" name="order_id" value="625"> 
    <input type="Hidden" name="merchant" value="7727222"> 
    <input type="Hidden" name="tx_id" value="322307f91ef2b5318e5d720f49fb30dace2ca474"> 


      <input name="pButton" value="Pago con Tarjeta de Crédito/Débito" type="Hidden" /> 

      <input name="address" value="ACMAX" type="Hidden" /> 

    </form> 
    <script type="text/javascript"> 
    var formars = document.getElementById('formars'); 
    formars.submit(); 

    </script> 
    </BODY> 

    </HTML> 

Je ne peux pas changer ce code, donc je besoin d'obtenir les données du formulaire " formars "

+0

Ils seront très probablement envoyer une demande 'POST' retour à l'URL que vous fournissez comme paramètre' urlBack', la passerelle est Qui que ce soit, ils doivent avoir des instructions sur les champs de données qu'ils republier. Vous pouvez ensuite analyser les données avec n'importe quelle langue disponible, .NET, PHP etc. – mikeyq6

+0

Merci "mikeyq6" J'ai le paramètre que la passerelle retourne, mais je ne sais pas comment obtenir ces données, –

Répondre

0

Eh bien, par exemple, si vous avez défini le paramètre urlBack sur une page php, appelons-le returnCall.php.

Maintenant, si la passerelle de paiement renvoit les données suivantes 'post':

name1=cat&name2=dog&name3=echidna

Ensuite, dans votre page php, vous pouvez lire ces données comme suit:

<?php 
    $value1 = $_POST["name1"]; 
    $value2 = $_POST["name2"]; 
    $value3 = $_POST["name3"]; 
?> 

<p> 
    <ul> 
     <li>Value1 = <?=$value1?></li> 
     <li>Value2 = <?=$value2?></li> 
     <li>Value3 = <?=$value3?></li> 
    </ul> 
</p> 

Ensuite, la sortie sur la page se traduirait par:

<p> 
    <ul> 
     <li>Value1 = cat</li> 
     <li>Value2 = dog</li> 
     <li>Value3 = echidna</li> 
    </ul> 
</p> 

Vous pourriez également avoir une page aspx qui pourrait faire la même chose.

string Value1; 
string Value2; 
string Value3; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    Value1 = Request.Form["name1"]; 
    Value2 = Request.Form["name2"]; 
    Value3 = Request.Form["name3"]; 
} 
+0

Merci Mikeyq6 , J'ai le code suivant, c'est le même que vous avez suggéré, mais le code fonctionne seulement dans un serveur avec php, dans mon cas je n'ai pas php, seulement asp.net, javascript jquery et html. "EM_Response =
EM_Total = ?
EM_OrderID =

+0

La passerelle de paiement a l'adresse https://www.procom.prosa.com.mx/eMerchant/7727222_acmaxdemexico.jsp Donc je pense que je peux obtenir les données en utilisant javascript, c'est possible? –

+0

Vous pouvez utiliser ajax appelle pour le faire, mais vous rencontrerez des difficultés avec la restriction de domaine croisé Voir [ici pour plus d'informations à ce sujet] (http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain) – mikeyq6