บทความนี้แบ่งปันอินเทอร์เฟซแบบสอบถามสำหรับคำสั่งชำระเงิน WeChat สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
1. บทนำสู่อินเทอร์เฟซ
2. การใช้งานรหัส
แพ็คเกจ com.zhrd.bussinss.platform.controller.shop; นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.security.keystore; นำเข้า java.text.simpledateformat; javax.servlet.http.htttservletrequest; นำเข้า Javax.servlet.http.httpservletResponse; นำเข้า net.sf.json.jsonObject; นำเข้า org.apache.http.httpentity org.apache.http.client.methods.httppost; นำเข้า org.apache.http.conn.ssl.sslconnectionsocketFactory; นำเข้า org.apache.http.conn.ssl.sslcontexts org.apache.http.impl.client.closeablehttpclient นำเข้า org.apache.http.impl.client.httpclients; นำเข้า org.dom4j.document; นำเข้า org.dom4j.element; นำเข้า org.dom4j.io.saxreader; org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.requestmethod; org.springframework.web.bind.annotation.responsebody; นำเข้า com.zhrd.bussinss.platform.service.weixinpayservice; นำเข้า com.zhrd.bussinss.platform.utils. com.zhrd.bussinss.platform.weixinpayutils.clientcustomssl;@controller@requestmapping ("/shop/weixinpayordersearch") คลาสสาธารณะ weixinpayordersearchcontroller /** * QUECHAT ค่าใช้จ่ายคำสั่งซื้อสถานะคำสั่งซื้อ * @Param Request * @Param Request * @return */@requestmapping (value = "/init", method = requestMethod.get) สตริงสาธารณะ init (httpservletRequest คำขอ httpServletResponse) {return " }/** * WeChat Expenditure Status STATUE STATURY * @Param Request * @Param Response * @return */@requestmapping (value = "/getWeixInPayOrder", method = requestMethod.post) @ResponseBody Object GetWeixInPayOrder transactionId,@requestparam (จำเป็น = false) uttradeno) {ลอง {keystore keystore = keystore.getInstance ("PKCS12"); FileInputStream Instream = ใหม่ FileInputStream (ไฟล์ใหม่ (กำหนดเอง ProPropertyPlaceHolderConfigurer.getContextProperty ("wx.cert"). ToString ())); ลอง {keystore.load (instream, "ดูอีเมล" .tochararray ()); } ในที่สุด {enterstream.close (); } // Trust CA ของตัวเองและ Certs SylContext SSLContext = SSLContexts.custom (). loadKeYmaterial (KeyStore, "10061401" .ToCharArray ()). build (); // อนุญาตให้ใช้โปรโตคอล TLSV1 เฉพาะ sslConnectionsOcketFactory sslsf = ใหม่ sslconnectionsocketFactory (sslContext, สตริงใหม่ [] {"tlsv1"}, null, sslconnectionsocketfactory.allow_hostname_verifier); closeablehttpClient httpClient = httpClients.custom () .setsslsocketFactory (SSLSF) .build (); // httpget httpget = new // httpget ("https://api.mch.weixin.qq.com/secapi/pay/refund"); httppost httppost = ใหม่ httppost ("https://api.mch.weixin.qq.com/pay/orderQuery"); วันที่ dt = วันที่ใหม่ (); SimpledateFormat SDF = ใหม่ SimpleDateFormat ("yyyymmddhhmmss"); String noncestr = sdf.format (dt) .toString (); <ชื่อก่อน = "รหัส"> สตริง xml = clientcustomssl.searchnativePackage (transactionId.trim (), "", noncestr); httppost.setEntity (SE); System.out.println ("การดำเนินการคำขอ" + httppost.getRequestline ()); closeblehtpResponse ResponseEntry = httpClient.execute (HTTPPOST); ลอง {httpentity entity = responseentry.getEntity (); System.out.println ("----------------------------------------"); System.out.println (ResponseEntry.getStatusline ()); if (เอนทิตี! = null) {system.out.println ("ความยาวเนื้อหาตอบกลับ:" + entity.getContentLength ()); /*bufferedReader bufferedReader = ใหม่ bufferedReader (ใหม่ inputStreamReader (entity.getContent ())); ข้อความสตริง; ในขณะที่ ((text = bufferedreader.readline ()))! = null) {system.out.println ("=================="+ข้อความ); }*/ saxReader saxReader = new SaxReader (); เอกสารเอกสาร = saxReader.read (entity.getContent ()); Element Rootelt = document.getRootElement (); System.out.println ("รูทโหนด:" + 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 ("ความสำเร็จ") && returnCode.equals ("ความสำเร็จ")) {result.put ("tradestate", rootelt.ElementText ("trade_state")); result.put ("transactionId", rootelt.elementText ("transaction_id")); result.put ("Outtradeno", rootelt.elementText ("out_trade_no")); result.put ("totalfee", rootelt.elementText ("total_fee")); result.put ("สถานะ", "ความสำเร็จ"); result.put ("msg", "ความสำเร็จ"); } อื่นถ้า (returnCode.equals ("ความสำเร็จ")) {result.put ("errorCheck", "errCode"); result.put ("สถานะ", "false"); result.put ("errormsg", rootelt.elementText ("err_code_des")); } else {result.put ("errorCheck", "errmsg"); result.put ("สถานะ", "false"); result.put ("errormsg", rootelt.elementText ("return_msg")); } ผลตอบแทนผลลัพธ์; } // entityutils.consume (เอนทิตี); } ในที่สุด {ResponseEntry.close (); }} ในที่สุด {httpClient.close (); }} catch (exception e) {e.printstacktrace (); jsonObject result = new JSonObject (); result.put ("สถานะ", "ข้อผิดพลาด"); result.put ("msg", e.getMessage ()); ผลการกลับมา; } กลับ ""; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น