introduire
Tout le monde sait que les exigences de liaison de rappel de WeChat Pay ne peuvent pas être suivies de paramètres, mais ils doivent également recevoir les données XML retournées. J'ai commencé à utiliser l'annotation @RequestBody sur les paramètres, dans l'espoir d'obtenir les données XML, le test a échoué. Enfin, en utilisant HttpServletRequest pour obtenir les données avec succès.
Exemple de code
@RequestMapping ("/ weixinpay / callback") Public String Rappel (httpServLetRequest request) {inputStream is = request.getInputStream (); String xml = streamUtil.inputStream2String (IS, "UTF-8") / ** * plus tard, convertir XML en MAP en processus logiquement basé sur les données * /} / ** * Le flux InputStream est converti en chaîne String * @param instream InputStream Stream * @param Encoding Encoding Format * @return String * / public static String inputStream2String (InputStream InsideRam, String Encoding) {String result = null; essayez {if (insiteam! = null) {bytearrayoutputStream outStream = new ByTearRayOutputStream (); octet [] tempbytes = new byte [_buffer_size]; int count = -1; while ((count = instream.read (tempbytes, 0, _buffer_size))! = -1) {outstream.write (tempytes, 0, count); } tempbytes = null; outstream.flush (); result = new String (outStream.ToByTearray (), Encoding); }} catch (exception e) {result = null; } Retour Résultat;}Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que cela vous aidera à étudier ou à travailler. Si vous avez des questions, vous pouvez laisser un message pour communiquer.