تشارك هذه المقالة واجهة الاستعلام لأوامر الدفع في WeChat للرجوع إليها. المحتوى المحدد كما يلي
1. مقدمة للواجهة
2. تنفيذ الكود
package com.zhrd.bussinss.platform.controller.shop ؛ استيراد java.io.file ؛ استيراد java.io.fileinputstream ؛ استيراد java.security.keystore ؛ استيراد java.text.simpledateformat ؛ استيراد java.util.date ؛ javax.servlet.http.httpservletrequest ؛ import javax.servlet.http.httpservletresponse ؛ import net.sf.json.jsonobject ؛ import org.apache.http.httpentity ؛ import org.apache.http.client.methet.closeTepronse ؛ org.apache.http.client.methods.httppost ؛ import org.apache.http.conn.ssl.sslconnectionsocketfactory ؛ import org.apache.http.conn.ssl.sslcontextS ؛ org.apache.http.impl.client.closablehttpclient ؛ استيراد org.apache.http.impl.client.httpclients ؛ استيراد org.dom4j.document ؛ استيراد org.dom4j.element ؛ استيراد org.dom4j.io.saxreader ؛ org.springframework.beans.factory.annotation. org.springframework.web.bind.annotation.requestparam ؛ استيراد org.springframework.web.bind.annotation.responseBody ؛ import com.zhrd.bussinss.platform.service.weixinpayservice ؛ com.zhrd.bussinss.platform.weixinpayUtils.ClientCustomssl ؛@controller@requestMapping ("/shop/weixinpayordersearch") public class weixinpayordersearchController {autowired weixinpayserviceervice weixinpayservice ؛ /** * حالة الإنفاق WeChat query * param request * param request * return */ @requestmapping (value = "/init" ، method = requestMethod.get) السلسلة العامة init (httpservletrequest request ، httpservletsponse response) {return "weixinpayordersearch" ؛ }/** * وضع أمر النفقات wechat query * param request * @param respons TransactionId ،@requestParam (مطلوب = false) سلسلة OutTradeno) {try {keystore keystore = keystore.getInstance ("pkcs12") ؛ FileInputStream instream = new FileInputStream (ملف جديد (CustomProperTyPlaterConfigurer.getContextProperty ("wx.cert"). toString ())) ؛ حاول {keystore.load (instream ، "انظر البريد الإلكتروني". tochararray ()) ؛ } أخيرًا {entersream.close () ؛ } // Trust Own CA وجميع certs sslcontext sslcontext = sslcontexts.custom (). loadkeymaterial (keystore ، "10061401" .Thararray ()). build () ؛ // السماح بروتوكول TLSV1 فقط SSLConnectionsCONKEFFACTORY SSLSF = جديد SSLConnectionSOCKETFACTORY (SSLCONTEXT ، سلسلة جديدة [] {"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") ؛ تاريخ dt = تاريخ جديد () ؛ SimplEdateFormat SDF = جديد spiStFormat ("Yyyymmddhhmmss") ؛ سلسلة noncestr = sdf.format (dt) .toString () ؛ <pre name = "code"> string xml = clientcustomssl.SearchNativePackage (TransactactionId.trim () ، "" ، noncestr) ؛ // هذا هو معرف WeChat Side (كلا الهوية المحلية ومعرف الخادم). httppost.setentity (se) ؛ system.out.println ("request request" + httppost.getRequestLine ()) ؛ closablehttpresponse desponseentry = httpclient.execute (httppost) ؛ جرب {httpentity unitity = responseentry.getentity () ؛ System.out.println ("----------------------------------------------") ؛ System.out.println (reponseentry.getStatusLine ()) ؛ if (ectity! = null) {system.out.println ("طول محتوى الاستجابة:" + entity.getContentLength ()) ؛ /*BufferedReader BufferedReader = جديد BufferEdReader (New InputStreamReader (entity.getContent ())) ؛ نص سلسلة بينما ((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 ("OutTradeno" ، rootelt.elementText ("Out_trade_no")) ؛ result.put ("TotalFee" ، rootelt.elementText ("Total_fee")) ؛ result.put ("الحالة" ، "النجاح") ؛ النتيجة. } آخر إذا (returncode.equals ("النجاح")) {result.put ("errorcheck" ، "errcode") ؛ النتيجة. result.put ("errormsg" ، rootelt.elementText ("err_code_des")) ؛ } آخر {result.put ("errorcheck" ، "errmsg") ؛ النتيجة. result.put ("errormsg" ، rootelt.elementText ("return_msg")) ؛ } نتيجة الإرجاع ؛ } // entityutils.consume (الكيان) ؛ } أخيرًا {responseentry.close () ؛ }} أخيرًا {httpclient.close () ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ JSonObject Result = New JSonObject () ؛ result.put ("الحالة" ، "خطأ") ؛ result.put ("msg" ، e.getMessage ()) ؛ نتيجة العودة } يعود ""؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.