บทความนี้แบ่งปันรหัสเฉพาะสำหรับคำสั่งปิดการชำระเงิน Java WeChat สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
เอกสารอย่างเป็นทางการ
1. สถานการณ์แอปพลิเคชัน
การชำระเงินคำสั่งซื้อของผู้ค้าล้มเหลวและจำเป็นต้องสร้างหมายเลขคำสั่งซื้อใหม่และเริ่มต้นการชำระเงินอีกครั้ง คุณต้องโทรหาคำสั่งตรวจสอบสำหรับหมายเลขคำสั่งซื้อเดิมเพื่อหลีกเลี่ยงการหมดเวลาชำระเงินการชำระเงินซ้ำ ๆ และการออกจากระบบจะไม่ได้รับการยอมรับอีกต่อไป เพื่อหลีกเลี่ยงการสั่งซื้อของผู้ใช้โปรดโทรติดต่ออินเตอร์เฟสคำสั่งตรวจสอบ
หมายเหตุ: ไม่สามารถเรียกอินเทอร์เฟซการสั่งซื้อได้ทันทีหลังจากสร้างคำสั่งซื้อและช่วงเวลาการโทรขั้นต่ำคือ 5 นาที
2. ที่อยู่อินเตอร์เฟส
https://api.mch.weixin.qq.com/pay/closeorder
3. พารามิเตอร์การร้องขอ
ปิดตามหมายเลขคำสั่งซื้อของระบบการค้าของคุณเท่านั้น
แพ็คเกจ com.phil.wechatpay.model.rep; นำเข้า java.io.serializable; / ** * พารามิเตอร์การขอคำสั่งซื้อปิด (ปกติ XML) * @author Phil * @date 25 กรกฎาคม 2017 * */ คลาสสาธารณะปิดการสั่งซื้อขยายบทคัดย่อ AbstractPayParams ใช้งาน serializable {/ ** * */ ส่วนตัวคงที่ สตริงส่วนตัว out_trade_no; // หมายเลขคำสั่งซื้อของผู้ค้าสตริงสาธารณะ getout_trade_no () {return out_trade_no; } โมฆะสาธารณะ setout_trade_no (สตริง out_trade_no) {this.out_trade_no = out_trade_no; -4. ส่งคืนผลลัพธ์
แพ็คเกจ com.phil.wechatpay.model.resp; นำเข้า java.io.serializable; นำเข้า com.phil.common.annotation.notrequire; / ** * พารามิเตอร์การส่งคืนคำสั่งปิด (พร้อม <! [cdata []]> รูปแบบ XML) * * @author Phil * @date 25 กรกฎาคม 2017 * */ ชั้นเรียนสาธารณะปิดการสั่งซื้อขยายบทคัดย่อ สตริงส่วนตัว return_code; // ส่งคืนรหัสสถานะความสำเร็จ/ล้มเหลว @NotRequire สตริงส่วนตัว return_msg; // ส่งคืนข้อมูล/**** return_code คือความสำเร็จ ****/สตริงส่วนตัว Results_code; // ผลการดำเนินธุรกิจสตริงส่วนตัว Result_msg; // ผลการดำเนินธุรกิจคำอธิบาย @NotRequire สตริงส่วนตัว err_code; // ข้อผิดพลาดข้อมูลคำอธิบาย @NotRequire สตริงส่วนตัว err_code_des;
5. ปิดคำสั่งซื้อ
แพ็คเกจ com.phil.wechatpay.controller; นำเข้า Javax.servlet.http.httpservletRequest; นำเข้า Javax.servlet.http.httpservletResponse; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.responsebody; นำเข้า com.phil.common.config.wechatconfig; นำเข้า com.phil.common.util.httprequtil; นำเข้า com.phil.common.util.payutil; นำเข้า com.phil.common.util.signatureutil; นำเข้า com.phil.common.util.xmlutil; นำเข้า com.phil.wechatpay.model.rep.closeorderparams; นำเข้า com.phil.wechatpay.model.rep.closeorderResult; นำเข้า com.phil.wechatpay.service.wechatpayservice; /*** ปิดการสั่งซื้อ* @author Phil* @date 25 กรกฎาคม 2017**/@Controller @requestmapping ("/wxpay/") คลาสสาธารณะ wechatpaycloseorderController {@autowired ส่วนตัว wechatpayservice wechatpayservice; @ResponseBody @RequestMapping ("ปิด") Public ClosordResult closeRorder (คำขอ httpservletRequest, การตอบกลับ httpservletResponse) โยนข้อยกเว้น {closordResult closeLordResult = null; ClosorderParams close closeRorderams = new CloseLorderAms (); ClosordParams.setAppid (wechatconfig.app_id); ClosorderParams.setmch_id (wechatconfig.mch_id); closordparams.setnonce_str (payutil.createnoncestr ()); ClosordParams.setout_trade_no (""); // ผ่านใน // ที่ร้องขอ XML String closordExml = wechatpayservice.abstractpaytoxml (closeLorderParams); // ผสานลายเซ็นเป็นบริการ // ส่งคืน XML ใน <! httprequtil.httpsdefaultExecute (httprequtil.post_method, wechatconfig.close_order_url, null, closeLordExml); // ดำเนินการตรวจสอบลายเซ็นถ้า (signatureutil.checkissignvalidfromweixin (closeRorderResultxml)) {closeRorderResult = xmlutil.getObjectFromxml (closeRorderResultxml, ClosordResult.class); } return closeLordResult; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น