إن استخدام المظلات الحمراء WeChat واسعة جدًا بالفعل. تقدم هذه المقالة أمثلة على إرسال الأظرف الحمراء على WeChat. تحتاج إلى حساب عام معتمد ، ويمكنك فتح منصة الدفع والتجار WeChat وتمكين أذونات المغلف الأحمر النقدي.
https://pay.weixin.qq.com عنوان تسجيل الدخول التاجر. اختر عرض الحزم الحمراء النقدية في مركز التسويق
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php؟chapter=13_1 وصف وثيقة الموقع الرسمي للأغراض الحمراء النقدية
دعونا نلقي نظرة على بعض الاختبارات البسيطة أولاً. الفرضية هي أنك تحتاج إلى إعادة الشحن أولاً على منصة التاجر. الدفع المسبق غير مدعوم. تلخص هذه المقالة فقط مكالمات وتنفيذ واجهة WeChat Cash Red Envelope. على وجه التحديد ، تحتاج إلى تنفيذ كيفية استدعاء هذه الواجهة بناءً على عملك الخاص.
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php؟chapter=13_4&index=3 هناك جميع شرح للمغلفات الحمراء العادية في المستند. يجب أن تحتوي المكالمة على شهادة من منصة التاجر.
كما يتم سرد المعلمات المطلوبة. تقرر وفقًا لاحتياجاتك.
1. جافا تغلف كائن مغلف أحمر
/*** كائن المغلف الأحمر* Author Xiao Shuai Shuai* date 2016-8-17 11:12:19 Am* Open Source China http://my.oschina.net/xshuai*/public class-redpack تنفذ serializable {private string sign ؛ // التحقق الذي تم إنشاؤه بناءً على سمات السلسلة الخاصة mch_billno ؛ // رقم الطلب سلسلة خاصة mCh_id ؛ // رقم التاجر سلسلة خاصة wxappid ؛ // WeChat appid private string send_name ؛ // اسم التاجر السلسلة الخاصة re_openid ؛ // المستخدم المفتوح السلسلة total_amount ؛ // مبلغ الدفع الخاص السلسلة الخاصة total_num ؛ // عدد العدد من المداخل الأحمر ، لا يمكن أن يكون acment string string act_ string action ؛ سلسلة خاصة nonce_str 2. فئة الأدوات المطلوبة CreateBillno هي إنشاء رقم الطلب التاجر. متطلبات وثيقة الموقع الرسمي هي كما يلي:
/*** فئة أدوات المغلف الأحمر* Author Xiao Shuai Shuai* date 2016-8-17 11:12:19 AM* Open Source China http://my.oschina.net/xshuai*/public class redpacktil {/** سلسلة ثابتة عامة CreateBillno () {// التكوين: mch_id+yyyymmdd+10 أرقام لا يمكن تكرارها خلال يوم واحد // 10 أرقام من الأرقام التي لا يمكن تكرارها في غضون يوم واحد على النحو التالي: // لأن كل مستخدم يرتبط بـ userId ، يختلف المستخدم الخاص بهم ، بالإضافة إلى تم إنشاؤه بشكل عشوائي (10-lengd). SimpleDateFormat df = new SimplEdateFormat ("yyyymmdd") ؛ String NowTime = df.format (dt) ؛ طول int = 10 ؛ إرجاع wxconstants.mch_id + nowtime + getRandomNum (طول) ؛ } / ** * قم بإنشاء أرقام عشوائية بأرقام محددة * param طول * @return * / السلسلة الثابتة العامة getRandomNum (int length) {string val = "" ؛ عشوائي عشوائي = جديد عشوائي () ؛ لـ (int i = 0 ؛ i <length ؛ i ++) {val+= string.valueof (random.nextint (10)) ؛ } إرجاع فال ؛ }} 3. العمل السابق بسيط للغاية ويتطلب شهادة وشهادة تاجر. وإذا كان لدى منصة التاجر مبلغًا ، فيمكنك اختبار واجهة المغلف الأحمر النقدي
Redpack Pack = New RedPack (NULL // لأول مرة فارغة ، RedPackutil.CreateBillno () رقم الطلب التاجر ، "رقم التاجر الخاص بك" ، "Appid of the Apply of the Occuation" ، "Name" ، "OpenId of the User to the to the to the to the to the to the sivate" ، is the sending unity extive 100 ، is is rmb 1 "،". اسم "،" ملاحظة "،" سلسلة عشوائية ") ؛
باستثناء تسجيل الدخول في الاختبار ، فهو فارغ. كل شيء آخر يمكن ملؤه. الآن ننشئ علامة علامة. إنشاء علامة وفقا للمعلمات في كائن الحزمة ؛
خوارزمية توقيع محددة https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php؟chapter=4_3 التي قدمها الموقع الرسمي
https://pay.weixin.qq.com/wiki/tools/signverify/ يمكنك مقارنتها على صفحة الاختبار هذه لمعرفة ما إذا كان التشفير متسقًا.
علامات السلسلة = signature.getSign (pack) ؛ // يتم تعبئة الإشارة التي تم إنشاؤها في كائن pack.setsign (علامات) ؛ // تحويل الكائن إلى تنسيق XML يتطلب WeChat سلسلة XML TRING XML = XMLUTIL.OBJTOXML (Pack ، RedPack.class ، "
4. أرسل الحزم الحمراء
RedPackService Service = New RedPacService () ؛ String Result = service.redpackorder (xml) ؛ // هل البيانات التي تم إرجاعها بواسطة الطلب ناجح؟
الفئة العامة RedPackService {/*** عنوان واجهة الحزمة الأحمر*/سلسلة ثابتة خاصة Redp_order_path = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack" ؛ / *** حزمة حمراء* الشهادة المطلوبة* param paramxml* @REGANT*/ public static string RedPackorder (String paramxml) {try {wxBaseService service = new WxBaseservice (Redp_order_path) ؛ return service.sendpost (paramxml) ؛ } catch (استثناء e) {log.error (e.toString ()) ؛ } إرجاع فارغ ؛ }} / ** * انتقل إلى API Post Data XML عبر https * * param url appi addran SendPost (url url ، سلسلة postdataxml) يلقي ioException ، keystoreException ، غير قابل للاسترداد ، nosuchalgorithmexception ، keymanagementexception {if (! hasinit) {init () ؛ } سلسلة السلسلة = فارغة ؛ httppost httppost = new httppost (url) ؛ // قم بحل علة السد المزدوج لـ Xstream // Xstream xstreamforrequestpostdata = new xstream (domdriver new ("UTF-8" ، XMlfriendlynamecoder ("-_" ، "_"))) ؛ // قم بتحويل كائن البيانات لإرسالها إلى API إلى منشور بيانات تنسيق XML إلى API // سلسلة postdataxml = xstreamforrequestpostdata.toxml (xmlobj) ؛ util.log ("API ، بيانات Post السابقة هي:") ؛ util.log (postdataxml) ؛ // يجب أن تشير إلى أن ترميز UTF-8 يتم استخدامه ، وإلا فإن النص الصيني لخادم API لا يمكن التعرف عليه بنجاح postentity striterity = جديد (postdataxml ، "UTF-8") ؛ httppost.addheader ("نوع المحتوى" ، "text/xml") ؛ httppost.setentity (postentity) ؛ // قم بتعيين تكوين الطلب httppost.setConfig (requestConfig) ؛ util.log ("طلب تنفيذ" + httppost.getRequestLine ()) ؛ جرب {httpresponse straint = httpclient.execute (httppost) ؛ كيان httpentity = response.getentity () ؛ النتيجة = entityUtils.ToString (الكيان ، "UTF-8") ؛ } catch (connectionPoolTimeOutException e) {log.e ("http get throw connectionPooltimeOtexception (time time out)") ؛ } catch (connectTimeOutException e) {log.e ("http get throw connectTimeOutException") ؛ } catch (SockettimeOutException e) {log.e ("http get throw sockettimeoutexception") ؛ } catch (استثناء e) {log.e ("http get refr refrise request”) ؛ } أخيرًا {httppost.abort () ؛ } نتيجة الإرجاع ؛ } 5. XML عادت. نظرًا لأنه تم شحنه فقط 1 يوان ، فقد تم اختباره وإرساله قبل بضعة أيام. لذلك يتم إرجاع المعلومات التالية.
<xml> <return_code> <! مرة أخرى]]> </return_msg> <dred_code> <! _billno> <! appid]]> </swxappid> <re_openid> <!
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.