introduzir
Todo mundo sabe que os requisitos de link de retorno de chamada do WeChat Pay não podem ser seguidos por parâmetros, mas também precisam receber os dados XML retornados. Comecei a usar a anotação @RequestBody nos parâmetros, na esperança de obter os dados XML, o teste falhou. Finalmente, usando HttpServletRequest para obter os dados com sucesso.
Código de amostra
@RequestMapping ("/weixInpay/chamada de retorno") public String Callback (httpServletRequest solicitação) {inputStream is = request.getInputStream (); String xml = streamutil.inputStream2String (IS, "UTF-8") /*** Posteriormente, converta XML em mapa para processar logicamente com base nos dados* /} /*** O fluxo InputStream é convertido em String String* @param Instiram InputStream Stream* @param codificação de codificação formato* @return string string*/public static string inputStream2String (InputStream Instream, String Encoding) {String Result = null; tente {if (Instream! = NULL) {bytearrayoutputStream Outream = new ByteArrayOutputStream (); byte [] tempbytes = novo byte [_buffer_size]; int count = -1; while ((count = Instream.read (tempbytes, 0, _buffer_size))! = -1) {ostream.write (tempbytes, 0, contagem); } tempbytes = null; superam.flush (); resultado = new string (rastream.tobytearray (), codificação); }} catch (Exceção e) {resultado = null; } resultado de retorno;}Resumir
O acima é o conteúdo inteiro deste artigo. Espero que isso ajude você a estudar ou trabalhar. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.