Эта статья разделяет интерфейс запроса для платежных заказов WeChat для вашей ссылки. Конкретный контент заключается в следующем
1. Введение в интерфейс
2. Реализация кода
пакет com.zhrd.bussinss.platform.controller.shop; import java.io.file; import java.io.fileinputstream; import java.security.keystore; import java.text.simpledateformat; import java.util.date; import javax.net.ssl.sslcontext; javax.servlet.http.httpservlectrequest; import javax.servlet.http.httpservletresponse; импорт net.sf.json.jsonobject; импорт org.apache.http.httpentity; import org.apache.http.client.methods.closepasy; org.apache.http.client.methods.httppost; import org.apache.http.conn.ssl.sslconnectionsockectectoro; org.apache.http.impl.client.closablehttpclient; import org.apache.http.impl.client.httpclients; импорт org.dom4j.document; импорт org.dom4j.element; импорт org.dom4j.io.saxreader; импорт org.springframe.bean.Antory.AtReation.Atry.Antory.Antory.Atry.Antory.AtReation.Atry.Atry.Antory.AtReation.Atry.Atry.Atry.AtReation.ATRITY. org.springframework.stereotype.controller; import org.springframework.web.bind.nantation.requestmapping; import org.springframework.web.bindtation.nationtation.requestmethod; импорт org.springframework.web.bindation.requestparam; org.springframework.web.bind.annotation.responsebody; import com.zhrd.bussins.platform.service.weixinpayservice; import com.zhrd.bussinss.platform.utils.customizedpropertiplaceholdercorurer; import com.zhrd.bussinss.platform.weixinpayutils.clientcustomssl;@controller@requestmapping ("/shop/weixinpayordersearch") public class weixinpayordersearchcontroller {@autowired weixinpayservice weixinpayservice; /** * WeChat Расходы Заказ Запрос * @param запрос * @param запрос * @return */@requestmapping (value = "/init", method = requestmethod.get) public String init (httpservlectrequest, httpservletresponse response) {return "weixinpayersearchearch"; } /** * WeChat expenditure order status query* @param request * @param response * @return */ @RequestMapping(value="/getWeiXinPayOrder",method=RequestMethod.POST ) @ResponseBody public Object getWeiXinPayOrder(HttpServletRequest request,HttpServletResponse response,@RequestParam(required=false) String TransactionId,@requestParam (required = false) string outtradeno) {try {keystore keystore = keystore.getInstance ("pkcs12"); FileInputStream inStream = new FileInputStream (новый файл (CamentiaDPropertyPlaceholderConfigurer.getContextProperty ("wx.cert"). ToString ())); try {keystore.load (instream, «см. электронное письмо» .tchararray ()); } наконец {enterstream.close (); } // Доверие собственное CA и все самопоглаживаемые certs sslcontext sslcontext = sslcontexts.custom (). // Разрешение TLSV1 Протокол только sslConnectionsocketCactory sslsf = new sslConnectionsockeCtectory (sslContext, new String [] {"tlsv1"}, null, sslConnectionsocteckectectectory.ally_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"); Дата DT = новая дата (); SimpleDateFormat SDF = new SimpleDateFormat ("yyyyMmddhhmmss"); String noncestr = sdf.format (dt) .toString (); <pre name = "code"> string xml = clientCustomssl.searchNativePackage (transactionId.trim (), ",", не Cestress); // Это идентификатор стороны WeChat (как локальный идентификатор и идентификатор сервера, идентификатор и идентификатор сервера); httppost.setentity (se); System.out.println («выполнение запроса» + httppost.getRequestline ()); ClosableHttpresponse responsentry = httpclient.execute (httppost); try {httpentity entity = responsentry.getentity (); System.out.println ("-----------------------------------------"); System.out.println (responseNtry.getStatusLine ()); if (Entity! = null) {System.out.println ("Длина содержимого ответа:" + entity.getContentLength ()); /*BufferedReader BufferedReader = new BufferedReader (New InputStreamReader (entity.getContent ())); Строка текст; while ((text = bufferedreader.readline ()))! = null) {System.out.println ("================"+Text); }*/ Saxreader saxreader = new saxreader (); Документ документ = saxreader.read (entity.getContent ()); Element rootelt = document.getrootelement (); System.out.println ("root node:" + 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"); JsonObject result = new jsonObject (); System.out.println ("resultCode ======"+ResultCode); 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 (resultCode! = null && resultCode.equals ("success") && returncode.equals ("success")) {result.put ("tradestate", rootelt.elementtext ("trade_state")); result.put ("transactionId", rootelt.elementText ("transaction_id")); result.put ("Outttradeno", rootelt.elementText ("out_trade_no")); result.put ("totalfee", rootelt.elementText ("total_fee")); result.put («статус», «успех»); result.put ("msg", "успех"); } else if (returncode.equals ("success")) {result.put ("errorcheck", "errcode"); result.put ("status", "false"); result.put ("errormsg", rootelt.elementtext ("err_code_des")); } else {result.put ("errorcheck", "errmsg"); result.put ("status", "false"); result.put ("errormsg", rootelt.elementtext ("return_msg")); } return Result; } // entityutils.consume (Entity); } наконец {responseNtry.close (); }} наконец {httpclient.close (); }} catch (Exception e) {e.printstackTrace (); JsonObject result = new jsonObject (); result.put ("status", "ошибка"); result.put ("msg", e.getmessage ()); результат возврата; } возвращаться ""; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.