1.1 تحليل بيانات رد الاتصال WeChat
inputStream instream = request.getInputStream () ؛ bytearrayoutputStream OutSteam = جديد bytearrayoutputStream () ؛ byte [] buffer = new byte [1024] ؛ int len = 0 ؛ len) ؛} outsteam.close () ؛ instream.close () ؛/** احصل على معلومات إرجاع XML من wechat call notify_url*/string result = new string (outsteam.tobytearray () ، "utf-8") ؛
والنتيجة هي بيانات XML التي يتم إرجاعها بواسطة رد اتصال WeChat.
1.2 تحليل بيانات XML التي تم إرجاعها بواسطة WeChat
/*** معلومات XML التي تم إرجاعها بواسطة رد الاتصال الوارد WeChat* إرجاع القيمة السهلة في شكل خريطة* DOM4J تقوم بتوصيلات XML وإرجاع زوج مفتاح العنصر من المستوى الأول. إذا كان العنصر من المستوى الأول يحتوي على أطفال ، فإن قيمة هذه العقدة فارغة* param strxml* @return* throws documentException*/ @cumpresswarnings ("rawtypes") public static sortedMap <String ، String> dom4jxmlparse (String strxml) documentException {sortedMap <String> string> documentHelper.ParsetExt (strxml) ؛ element root = doc.getRootElement () ؛ for (iterator iterator = root.elementIterator () ؛ iterator.hasnext () ؛) {element e = element) iterator.next () ؛ smap.put ( إرجاع بيانات تنسيق الخريطة المطلوبة ، ويتم استخدام القيمة للحصول على البيانات باستخدام smap.get ("اسم الحقل").
1.3 تحقق من شرعية توقيع عودة WeChat
/*** ما إذا كنت تريد التوقيع على WeChat v3 ، فإن القواعد هي: الفرز حسب اسم المعلمة AZ ، والمعلمات التي تواجه قيمًا فارغة لا تشارك في التوقيع* تمريرة في WeChat لإرجاع بيانات المعلمة تنسيق SortedMap بعد تحليل المعلومات* retury @ @ @ @ @ @ @ @ @ @ @ @recraty. boolean iswechatsign (sortedMap <string ، string> scratch ، string apikey) {StringBuffer sb = new StringBuffer () ؛ set es = smoke.entryset () ؛ iterator it = es.iterator () ؛ بينما (it.hasnext ()) {map.entry entry = (map.entry) it.next () ؛ string k = (string) entry.getKey () ؛ string v = (string) entry.getValue () ؛ if (! "sign" .equals (k) &&! + "&") ؛}} sb.append ("key =" + apikey) ؛/** تم التحقق من توقيع*/سلسلة = md5util.md5encode (sb.toString () ، "utf-8"). touppercase () ؛/** التوقيع القانوني الذي تم إرجاعه بواسطة جانب wechat*/stringiDINC smap.get ("علامة")). touppercase () ؛ return validsign.equals (علامة) ؛} الاقتراحات الشخصية: قبل التحقق من شرعية توقيع WeChat ، يمكنك أولاً تحديد ما إذا كانت Return_Code و Result_Code التي تم إرجاعها بواسطة WeChat هي النجاح.
ما ورد أعلاه هو شرعية بيانات التحقق من إصدار WeChat Pay Java V3 المقدمة لك من قبل المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!