Ich versuche über einen UPI-Hyperlink wie zu bezahlen
upi://pay?pa=abc@upi&pn=payeeName&tr=1234&tn=Pay%20to%20payeeName&am=1&mam=1&cu=INR&url=https://test.com/payment/orderId=123456
- Ich sende den obigen Link per SMS
- Wenn ich auf den Link klicke, wird die UPI-Anwendungsliste als Option angezeigt
- Ich habe die BHIM-App ausgewählt (auch andere Anwendungen ausprobiert).
- Dann Zahlung abgeschlossen, bis jetzt funktioniert es gut.
Nach Abschluss der UPI-Zahlung wird der Spring-Controller, der die Rückrufanforderung an https://test.com/payment/orderId=12345 verarbeitet , nicht aufgerufen.
Wie kann man die Antwort auf die UPI Hyperlink-Zahlung in Java richtig erhalten?
Bearbeiten:
Dies ist die Controller-Methode. Ich habe es auch versucht @GetMapping
statt @PostMapping
.
@PostMapping("/payment")
public ModelAndView credPayment(HttpServletRequest request) {
String key = request.getParameter("orderId");
String txnId = request.getParameter("txnId");
String responseCode = request.getParameter("responseCode");
String approvalRefNo = request.getParameter("ApprovalRefNo");
String status = request.getParameter("Status");
String txnRef = request.getParameter("txnRef");
System.out.println("Parameter Names");
while (request.getParameterNames().hasMoreElements()) {
System.out.println(request.getParameterNames().nextElement());
}
System.out.println("Header Names");
while (request.getHeaderNames().hasMoreElements()) {
System.out.println(request.getHeaderNames().nextElement());
}
System.out.println("txnId : "+txnId);
System.out.println("responseCode : "+responseCode);
System.out.println("ApprovalRefNo : "+approvalRefNo);
System.out.println("Status : "+status);
System.out.println("txnRef : "+txnRef);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("redirect:/");
return modelAndView;
}
System.out.println("Hello");
in Controller/payment/orderId=123456
direkt von einem Browser aus anrufen können? Denn basierend auf Ihren Beispielen sollte es nicht möglich sein - sehen Sie sich die Antwort von MyTwoCents an .../payment/orderId=123456
aus dem Internet anrufen und es funktioniert gutAntworten:
Wenn ich es richtig verstanden habe, lautet Ihre Weiterleitungs-URL
Und wenn dies aufgerufen wird, müssen Sie den Bestell-ID-Wert in Ihrem Controller abrufen.
Versuchen Sie dann, Ihre Methode wie folgt zu ändern:
Problem:
Sie haben Ihre URL-Zuordnung als
/payment
nur konfiguriert , sodass alle folgenden Elemente von dieser Zuordnung ausgeschlossen werden, z./payment/sdfdsfs
quelle
https://test.com/payment?orderId=123456
als Wert desurl
an die UPI-URL übergebenen Parameters zu verwenden. Das Grundproblem und seine Lösung bleiben jedoch gleich.quelle
Ihr Problem liegt in Ihrer Methodensignatur. Versuchen Sie, die Antwort zu Ihrem Methodenparameter hinzuzufügen, damit Sie das Antwortobjekt erhalten. Ändern Sie Ihre Methode in:
quelle