Веб-интеграция Java с платежным шлюзом Paytm - пример jsp внутри вызова сервлета иногда не работает из-за отправки javascript

Я использую Paytm для интеграции платежного шлюза, и я использую набор примеров, который является примером реализация JSP.

Я помещаю этот код в свой метод сервлета следующим образом:

int appointmentId = rst_appnt.getInt(1);//unique id 
TreeMap< String, String> parameters = new TreeMap<String, String>();
parameters.put("ORDER_ID", String.valueOf(appointmentId));
parameters.put("CUST_ID", "CUST001");
parameters.put("INDUSTRY_TYPE_ID", "Retail");
parameters.put("CHANNEL_ID", "WEB");
//parameters.put("TXN_AMOUNT", String.valueOf(rst_appnt.getDouble(3)));
parameters.put("TXN_AMOUNT", "10");
parameters.put("MID", "WorldP64425807474247");
parameters.put("CHANNEL_ID", "WEB");
parameters.put("INDUSTRY_TYPE_ID", "Retail");
parameters.put("WEBSITE", "worldpressplg");
parameters.put("MOBILE_NO", "9876543210");
parameters.put("EMAIL", "[email protected]");
parameters.put("CALLBACK_URL", "http://localhost:8080/Test/pgResponse.jsp");
String checkSum = CheckSumServiceHelper.getCheckSumServiceHelper().genrateCheckSum(PaytmConstants.MERCHANT_KEY, parameters);

StringBuilder outputHtml = new StringBuilder();
outputHtml.append("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>");
outputHtml.append("<html>");
outputHtml.append("<head>");
outputHtml.append("<title>Merchant Check Out Page</title>");
outputHtml.append("</head>");
outputHtml.append("<body>");
outputHtml.append("<center><h1>Please do not refresh this page...</h1></center>");
outputHtml.append("<form method='post' action='https://pguat.paytm.com/oltp-web/processTransaction' name='f1'>");
outputHtml.append("<table border='1'>");
outputHtml.append("<tbody>");

for (Map.Entry<String, String> entry : parameters.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
    outputHtml.append("<input type='hidden' name='" + key + "' value='" + value + "'>");
}

outputHtml.append("<input type='hidden' name='CHECKSUMHASH' value='" + checkSum + "'>");

outputHtml.append("</tbody>");
outputHtml.append("</table>");
outputHtml.append("<script type='text/javascript'>");
outputHtml.append("document.f1.submit();");
outputHtml.append("</script>");
outputHtml.append("</form>");

out.print(outputHtml);

Здесь он отправляется с использованием отправки формы в JavaScript, как показано в приведенном ниже коде:

outputHtml.append("<script type='text/javascript'>");
outputHtml.append("document.f1.submit();");
outputHtml.append("</script>");

Но кажется, что иногда скрипт не выполняется внутри сервлета.

Поэтому я сослался на пример Paytm Java.

Но, к сожалению, у него нет кода для вызова сервиса на Paytm.

Правильно ли я поступаю, используя JavaScript внутри сервлета, или мне следует использовать Java API вместо примера комплекта JSP?


person Santhucool    schedule 14.07.2016    source источник


Ответы (1)


вы просто добавляете этот синтаксис, но не запускаете. поэтому запустите его в документе при загрузке.

outputHtml.append("<script type='text/javascript'>");
                          outputHtml.append("document.onload=document.f1.submit();");
                      outputHtml.append("</script>");

или вы можете представить на нагрузку тела.

 <body onload="document.form.submit()">
person Zigri2612    schedule 14.07.2016
comment
В моем случае это работает иногда не всегда. Это решит проблему навсегда? - person Santhucool; 14.07.2016
comment
да, если он ведет себя неправильно, вы добавляете его при загрузке тела, когда я его обновляю - person Zigri2612; 14.07.2016