บทความนี้แบ่งปันรหัสเฉพาะสำหรับ Java โดยใช้ Alipay เพื่อสแกนรหัสสำหรับการชำระเงินสำหรับการอ้างอิงของคุณเนื้อหาเฉพาะมีดังนี้
การตระเตรียม
ขั้นแรกให้เปิดบัญชีทดสอบ Alipay Sandbox ซึ่งจะรวมถึงบัญชีผู้บริโภคและบัญชีผู้รับเงิน
สแกนรหัส QR เพื่อดาวน์โหลดแอพมือถือ
การกำหนดค่าพื้นฐาน
แพ็คเกจขวดที่จำเป็น
ALIPAYCONFIG
แพ็คเกจ com.alipay.config; นำเข้า java.io.filewriter; นำเข้า java.io.ioException; นำเข้า java.util.resourceBundle;/ * *ชื่อคลาส: ALIPAYCONFIG *ฟังก์ชั่นการกำหนดค่าพื้นฐาน พ่อค้าสามารถเขียนได้ตามความต้องการของเว็บไซต์ของตนเองและตามเอกสารทางเทคนิคและไม่จำเป็นต้องใช้รหัสนี้ *รหัสนี้มีไว้สำหรับการเรียนรู้และการค้นคว้าอินเทอร์เฟซ Alipay เท่านั้นและมีให้เป็นข้อมูลอ้างอิงเท่านั้น */คลาสสาธารณะ ALIPAYCONFIG {// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ // คีย์ส่วนตัวของผู้ค้ารูปแบบ PKCS8 ของคุณ RSA2 คีย์ส่วนตัวสตริงคงที่สตริง merchant_private_key = "miievaid2tulssmawg5+f4nzbexpnxi8nkqjpzeeaa =="; // คีย์สาธารณะ Alipay ดูที่อยู่: https://openhome.alipay.com/platform/keymanage.htm คีย์สาธารณะ Alipay ที่สอดคล้องกันภายใต้ AppID สตริงคงที่สาธารณะ ALIPAY_PUBLIC_KEY = "MIIBIJT26TLTKAR8S1ERDWI25VIBCMZ7PLMXVVUMHF5TDBWFBMHUS3QIDAQAB"; // พา ธ หน้าการแจ้งเตือนแบบอะซิงโครนัสเซิร์ฟเวอร์ต้องใช้เส้นทางเต็มในรูปแบบของ http: // และไม่สามารถเพิ่มพารามิเตอร์ที่กำหนดเองเช่น? id = 123 จะต้องเข้าถึงได้ตามปกติโดยเครือข่ายภายนอก สตริงคงที่สาธารณะ notify_url = "http: // localhost: 8080/alipay.trade.page.pay-java-utf-8/notify_url.jsp"; // หน้าเส้นทางการแจ้งเตือนแบบซิงโครนัสแบบซิงโครนัสต้องใช้เส้นทางที่สมบูรณ์ของรูปแบบ http: // ไม่สามารถเพิ่มพารามิเตอร์ที่กำหนดเองเช่น ID = 123 สตริงคงที่สาธารณะ return_url = "http: // localhost: 8080/การสอบ/ดัชนี/goumai"; // วิธีการลายเซ็นสตริงสแตติกสาธารณะ sign_type = "rsa2"; // รูปแบบการเข้ารหัสอักขระสตริงสแตติกสาธารณะ charset = "UTF-8"; // Alipay Gateway String String String GatewayUrl = "https://openapi.alipaydev.com/gateway.do"; // ALIPAY GATEWAY สตริงคงที่สาธารณะ log_path = "E: //"; // ↑↑↑↑olt *** เขียนบันทึกเพื่อการทดสอบง่าย ๆ (ดูข้อกำหนดของเว็บไซต์คุณสามารถเปลี่ยนบันทึกบันทึกในฐานข้อมูล) ลอง {writer = ใหม่ fileWriter (log_path + "ALIPAY_LOG_" + System.CurrentTimeMillis () + ". txt"); Writer.write (ดาบ); } catch (exception e) {e.printstacktrace (); } ในที่สุด {ถ้า (writer! = null) {ลอง {writer.close (); } catch (ioexception e) {e.printstacktrace (); -ผู้ควบคุม
// สร้างหน้าด้วยรหัส QR ที่สามารถใช้ในการสแกนรหัสเพื่อชำระเงินสำหรับการชำระเงิน @RequestMapping (value = "ALIPAY") Public String Alipay (httpservletResponse การตอบสนอง, แผนที่ ModelMap, String chapterid, httpservlet Alipayapiexception {// string a, urlname สตริง, สตริง couname ...+"& a ="+a+"& urlname ="+urlname+"& couname ="+couname // รับ AlipayClient AlipayClient AlipayClient = ใหม่ defaultAlipayClient AlipayConfig.merchant_private_key, "JSON", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type); // ตั้งค่าพารามิเตอร์การร้องขอ AlipayTradepAgePayRequest ALIPAYREQUEST = ใหม่ ALIPAYTRADEPAGEPAYREQUEST (); ALIPAYREQUEST.SETRETURNURL (ALIPAYCONFIG.RETURN_URL+"? บทที่ ="+บทที่); Alipayrequest.setNotifyUrl (AlipayConfig.notify_url); // Pay id, String out_trade_no = widout_trade_no; // จำนวนเงินที่ต้องจ่ายสตริงที่ต้องการ total_amount = widtotal_amount; total_amount = urldecoder.decode (total_amount, "UTF-8"); // transcoding // ชื่อคำสั่งซื้อสตริงที่ต้องการหัวเรื่อง = widSubject; subject = urldecoder.decode (หัวเรื่อง, "UTF-8"); // คำอธิบายผลิตภัณฑ์, สตริง null = widbody; Alipayrequest.setBizContent ("{/" out_trade_no/":/" + out_trade_no + "/", " +"/"total_amount/":/" + total_amount +"/"," + "/" หัวเรื่อง/"/" "/" TIMEOUT_EXPRESS/":/" 1M/"," + "/" product_code/":/" fast_instant_trade_pay/"}"); // คำขอสตริงผลลัพธ์ = AlipayClient.pageExecute (AlipayRequest) .getBody (); Response.setContentType ("ข้อความ/html; charset = utf-8"); PrintWriter out = response.getWriter (); out.println (ผลลัพธ์); คืนค่า null; -จ่ายสำเร็จและส่งคืนหน้า (return_url)
เส้นทางการส่งคืนหลังจากประสบความสำเร็จไปที่คอนโทรลเลอร์ดูการกำหนดค่าใน AlipayConfig สำหรับรายละเอียด
// คลิกเพื่อซื้อและบันทึกหลักสูตรในตารางการซื้อ @requestmapping (value = "goumai") @ResponseBody โมเดลสาธารณะและวิวทิวทัศน์ goumai (String chapterId, httpservletrequest req, String A, urlname สตริง แผนที่ <string, string> map1 = new hashmap <string, string> (); // sysusertab login_user = sysuserService.getSysuserById (userId); httpsession session = req.getSession (); sysusertab login_user1 = (sysusertab) session.getAttribute ("login_user"); string userId = login_user1.getUserId (); // session.setAttribute ("login_user", login_user); map1.put ("userid", userId); MAP1.PUT ("บทที่", บทที่อยู่); int num = sysbuyservice.getBuycount (MAPP1); if (num == 0) {mapp1.put ("ซื้อ", uuid.randomuuid (). toString (). แทนที่ ("-", "")); sysbuyservice.insertBuy (MAPP1); } // เนื้อหาหลักสูตรการสืบค้น // สตริง fanhui = showfh (req, urlname, urlname, couname, map, a); mav.setViewName ("jsp/pay/paysuccess"); กลับมา mav; -หลังจากการชำระเงินสำเร็จแล้วหน้าจะข้ามไปยังหน้า paysuccess.jsp
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น