Este artigo compartilha a interface de consulta para ordens de pagamento do WeChat para sua referência. O conteúdo específico é o seguinte
1. Introdução à interface
2. Implementação de código
pacote com.zhrd.bussins.platform.controller.shop; importar java.io.file; importar java.io.fileInputStream; importar java.security.keystore; importação java.text.simpledateFormat; import java.util.xtate; import; javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importação net.sf.json.jsonObject; import org.apache.http.httentity; importos. org.apache.http.client.methods.httppost; importar org.apache.http.conn.sssl.ssslConnectionSocketFactory; importar org.apache.http.conn.sssl.sslContexts; importância orgache.http.entity.stringentity; org.apache.http.impl.client.closeablehttpclient; importar org.apache.http.impl.client.httpclients; importar org.dom4j.document; importação org.dom4j.Element; import org.dom4j.io.saxreader; importar org.srg.sing.sing; org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.Responsebody; importar com.zhrd.bussins.platform.service.weixinPayService; importar com.zhrd.bussins.platform.utils.customizedPropertyPlouthHoundConfigurer; importação com.zhrd.bussins.platform.weixinpayutils.clientcustomssl;@controlador@requestmapping ("/shop/weixinpayordesearch") classe pública weixinpayordersearchcontroller {@autowired weixinPayservice weixinPayService; /** * Consulta de status do pedido de despesa do WeChat * @param request * @param request * @return */@RequestMapping (value = "/init", método = requestmethod.get) public string init (httpServletReQuest Solicy, httpperSleTroSponse resposta) {return "weixinPayerSearch"; }/** * WeChat Despesa Order Status Query * @param request * @param Resposta * @return */@requestMapping (value = "/getweixInPayOrder", Method = requestMethod.Post) @ResponseBody Public Object getweixPayOrder (HTTPSELTRETREST (RELEMPONSERTRPSERVERBOBODY Object GetWeixPay (HttPSleTreQuest Solicy, HTPSSOBOBODY, transactionID,@requestParam (requerir = false) string outtradeno) {try {keystore keystore = keystore.getInstance ("pkcs12"); FileInputStream Instruam = new FileInputStream (novo File (PersonalizadoPropertyPlaceHoldConfigurer.getContextProperty ("WX.CERT"). ToString ())); tente {keystore.load (Instruam, "Veja email" .ToCharArray ()); } finalmente {EnterStream.close (); } // Trust CA O próprio CA e todos os certificados autoassinados sslContext sslContext = sslContext.custom (). Loadkeymaterial (Keystore, "10061401" .toCharArray ()). Build (); // Permitir apenas o protocolo TLSV1 SSLConnectionSocketFactory SSLSF = new SSLConnectionSocketFactory (SSLContext, new String [] {"TLSV1"}, NULL, SSLConnectionSocketFactory.allow_all_Hostname_Verifier); ClosableHttpClient httpClient = httpClients.custom () .SetsSlSocketFactory (sslsf) .build (); // httpget httpget = new // httpget ("https://api.mch.weixin.qq.com/secapi/pay/refund"); Httppost httppost = new httppost ("https://api.mch.weixin.qq.com/pay/orderQuery"); Data dt = new Date (); SimpledateFormat sdf = new SimpleDateFormat ("yyyymmddhhmmss"); String noncestr = sdf.format (dt) .toString (); <pre name = "code"> string xml = clientcustomssl.searchnativepackage (transactionId.trim (), "", não -cestr); // Este é o strument se o strings (strings lateral); httppost.setentity (SE); System.out.println ("Execução da solicitação" + httppost.getRequestLine ()); ClosableHttpResponse ResponderEntry = httpClient.execute (httppost); tente {httpentity entity = respostaEntry.getEntity (); System.out.println ("--------------------------------------"); System.out.println (ResponseEntry.getStatusline ()); if (entidade! = null) {System.out.println ("Resposta Conteúdo Comprimento:" + entity.getContentLength ()); /*Bufferredreader bufferreader = new buffarreder (new InputStreamReader (entity.getContent ())); Texto de string; while ((text = bufferredreader.readline ()))! = null) {System.out.println ("================="+texto); }*/ Saxreader saxReader = new saxReader (); Documento documento = saxreader.read (entity.getContent ()); Elemento rootelt = document.getrootelement (); System.out.println ("nó raiz:" + rootelt.getName ()); System.out.println ("==="+rootelt.ElementText ("result_code")); System.out.println ("==="+rootelt.ElementText ("return_msg")); String resultCode = rootelt.ElementText ("result_code"); String returnCode = rootelt.ElementText ("return_code"); Resultado jsonObject = new jsonObject (); System.out.println ("resultadocode ======"+resultadocode); System.out.println ("returnCode ======="+returnCode); System.out.println ("trade_state ======="+rootelt.ElementText ("trade_state")); System.out.println ("transaction_id ======"+rootelt.ElementText ("transaction_id")); System.out.println ("out_trade_no =========="+ rootelt.ElementText ("out_trade_no")); System.out.println ("total_fee =========="+rootelt.ElementText ("total_fee")); if (resultadocode! = null && resultcode.equals ("succcess") && returncode.equals ("succcess")) {result.put ("TradeState", rootelt.ElementText ("trade_state")); resultado.put ("transactionID", rootelt.ElementText ("transaction_id")); resultado.put ("outtradeno", rootelt.ElementText ("out_trade_no")); resultado.put ("totalfee", rootelt.ElementText ("total_fee")); resultado.put ("status", "sucesso"); resultado.put ("msg", "sucesso"); } else if (returncode.equals ("succcess")) {result.put ("errorcheck", "errcode"); resultado.put ("status", "false"); resultado.put ("errorMsg", rootelt.ElementText ("err_code_des")); } else {result.put ("errorcheck", "errmsg"); resultado.put ("status", "false"); resultado.put ("errorMsg", rootelt.ElementText ("return_msg")); } resultado de retorno; } // entityutils.consume (entidade); } finalmente {ResponseEntry.close (); }} finalmente {httpclient.close (); }} catch (Exceção e) {e.printStackTrace (); Resultado jsonObject = new jsonObject (); resultado.put ("status", "erro"); resultado.put ("msg", e.getMessage ()); resultado de retorno; } retornar ""; }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.