ในส่วนก่อนหน้านี้เราใช้ Java Mail เพื่อทำหน้าที่ส่งอีเมลไปยังผู้ซื้อและทิ้งฟังก์ชั่นซึ่งก็คือการส่งข้อความไปยังผู้ซื้อและบอกพวกเขาว่าคำสั่งซื้อได้ถูกสร้างขึ้น ส่วนนี้ส่วนใหญ่จะแนะนำวิธีส่งข้อความไปยังผู้ใช้โดยอัตโนมัติหลังจากการชำระเงินเสร็จสมบูรณ์
1. สมัครฟังก์ชั่นส่ง SMS
เห็นได้ชัดว่าเราไม่สามารถส่งข้อความด้วยตัวเองและเราไม่มีฟังก์ชั่นในการสร้างข้อความดังนั้นเราจึงต้องพึ่งพาผู้ประกอบการบุคคลที่สาม อย่างไรก็ตามเช่น China Mobile, China Unicom และ Telecom จะไม่ให้บริการ SMS โดยตรงกับเรา แต่จะให้บริการ SMS แก่ผู้ให้บริการบางรายก่อนจากนั้นผู้ให้บริการเหล่านี้จะให้บริการแก่เรา
มีผู้ประกอบการที่เรียกว่า "China Net Construction SMS Communication" (ที่อยู่เว็บไซต์อย่างเป็นทางการ) ผู้ให้บริการนี้สามารถให้บริการ SMS แก่เราได้ หลังจากเข้าสู่เว็บไซต์อย่างเป็นทางการคุณสามารถตรวจสอบมาตรฐานการชาร์จ แน่นอนคุณสามารถรับข้อความฟรี 5 ข้อความเป็นครั้งแรก แต่ข้อความฟรีอาจไม่เสถียรเกินไปหรือเวลาในการส่งค่อนข้างยาว มันขึ้นอยู่กับตัวละคร แต่ตัวที่จ่ายนั้นดีโดยทั่วไป รูปแบบกำไรของเขาคือการได้รับข้อความจากมือถือ, China Unicom หรือ Telecom ในราคาที่ต่ำกว่าและขายให้กับผู้ใช้ แน่นอนว่ามีแพ็คเกจส่วนลด ผลิตภัณฑ์ประเภทนี้ซื้อโดย บริษัท หรือบริการขนาดใหญ่ที่จำเป็นต้องส่งข้อความถึงผู้ใช้
ก่อนอื่นเราลงทะเบียนบัญชี (จริง ๆ แล้วเพื่อรับข้อความสั้น ๆ 5 ข้อความฟรีเพื่อทดสอบโปรแกรมของเรา) เพื่อชี้แจงกระบวนการฉันพยายามเขียนให้ละเอียดที่สุดเท่าที่จะทำได้ โปรดดูอินเทอร์เฟซต่อไปนี้:
คุณสามารถกรอกชื่อและอีเมลใด ๆ เพียงกรอกชื่อของคุณเองในโทรศัพท์ของคุณเพราะคุณจะได้รับชื่อผู้ใช้และรหัสผ่านที่บันทึกไว้ หลังจากเข้าสู่ระบบเราจะเห็นว่ามีข้อความฟรี 5 ข้อความที่สามารถส่งได้ดังนี้:
เคล็ดลับที่เป็นมิตร: อย่าใช้ข้อความฟรี 5 ข้อความในวันแรกและคุณจะส่งข้อความอีก 5 ข้อความในวันที่สองแล้วคุณจะไม่ส่งพวกเขา ~
จากนั้นเราคลิกที่ส่ง SMS ในภาพด้านบนและอินเทอร์เฟซ SMS จะปรากฏขึ้น เราไม่ต้องการส่ง SMS แต่ตั้งค่า SMS ต่อท้าย นั่นคือหลังจากที่ผู้ใช้ได้รับ SMS มีคำต่อท้ายในตอนท้ายเพื่ออธิบายว่ามันมาจากไหนดังนี้:
หลังจากบันทึกแล้วเราคลิกที่ "อินเตอร์เฟส SMS API" ในคอลัมน์ด้านซ้ายและ API สำหรับการส่งข้อความจะปรากฏขึ้น (ที่อยู่ของการเชื่อมต่อยังได้รับที่นี่) เมื่อเราโปรแกรมเราต้องอ้างถึงอินเทอร์เฟซ API ที่พวกเขาให้กับเราเช่นเดียวกับฟังก์ชั่นการชำระเงินก่อนโดยใช้อินเทอร์เฟซอย่างเป็นทางการที่จัดทำโดย Yibao ลองมาดูสั้น ๆ :
ข้างต้นเป็นเพียงเนื้อหาบางส่วน สำหรับรายละเอียดโปรดคลิกที่ลิงค์ที่ระบุไว้ด้านบน เราคลิกที่คีย์ในรูปภาพเพื่อแก้ไขทันทีโดยเฉพาะอย่างยิ่งเพื่อดูว่าคีย์คืออะไรจากนั้นคัดลอกคีย์และบันทึก มันจะถูกใช้เมื่อเขียนโปรแกรมในภายหลัง
โอเคตอนนี้การเตรียมการเสร็จสิ้นและ API พร้อมใช้งาน ตอนนี้เราสามารถเริ่มพัฒนาฟังก์ชั่น SMS
2. ทดสอบว่าเซิร์ฟเวอร์บุคคลที่สามเป็นเรื่องปกติหรือไม่
ก่อนที่จะพัฒนาฟังก์ชั่น SMS ให้ทดสอบว่าเซิร์ฟเวอร์ที่สร้างโดย China Network เป็นเรื่องปกติหรือไม่ ตามข้อมูลที่จัดทำโดยหน้า SMS API เราสามารถใช้การเข้ารหัส UTF-8 เพื่อส่งที่อยู่อินเตอร์เฟส:
http://utf8.sms.webchinese.cn/?uid=User ชื่อของไซต์นี้ & คีย์ = คีย์ความปลอดภัยอินเตอร์เฟส & SMSMOB = หมายเลขโทรศัพท์มือถือ & smstext = รหัสยืนยัน: 8888
ลองทดสอบว่า utf8.sms.webchines.cn เป็นเรื่องปกติหรือไม่ มาเขียนหน้า test.jsp ในโครงการ:
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <! doctype html สาธารณะ "-// w3c // dtd html 4.01 transitional // en"> <html> <head> ตัวคุณเอง-> <a href = "http://utf8.sms.webchinese.cn/?uid=username ของเว็บไซต์นี้ & key = key = interface security key & smsmob = หมายเลขโทรศัพท์มือถือ & smstext = รหัสการตรวจสอบ: 8888"> เซิร์ฟเวอร์ทดสอบ </a>
(การเตือนความจำที่เป็นมิตร: อย่าทดสอบหลายครั้งในระหว่างการทดสอบครั้งเดียวก็เพียงพอแล้วส่วนใหญ่ขึ้นอยู่กับว่าเซิร์ฟเวอร์เป็นเรื่องปกติหรือไม่คุณต้องทิ้งไว้ในภายหลังเพื่อทดสอบหลายครั้งคุณสามารถเขียนพารามิเตอร์ได้อย่างไม่ถูกต้องหากมีการส่งคืนจำนวนเงินที่ไม่สามารถใช้งานได้ รวมอยู่ในลิงค์ซึ่งเป็นไปไม่ได้อย่างแน่นอน)
3. พัฒนาฟังก์ชั่นส่ง SMS
### ** 3.1 ส่งการทดสอบกระบวนการ SMS ** การใช้ฟังก์ชั่นการส่ง SMS จำเป็นต้องใช้แพ็คเกจสามขวดต่อไปนี้: (ที่อยู่ดาวน์โหลดฟรี: http://download.csdn.net/detail/eson_15/9528009) `commons-logging-1.1.1.jar` ต่อไปเราจะเขียนคลาส Java ปกติเพื่อทำฟังก์ชั่นการส่ง SMS และทดสอบความถูกต้อง:
คลาสสาธารณะ sendmessagedemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {// 1 เปิดเบราว์เซอร์ httpClient client = new httpClient (); // 2. วิธีการสร้างคำขอ: รับ/โพสต์โพสต์โพสต์ = postmethod ใหม่ ("http://utf8.sms.sms.webchinese.cn/"); // ที่อยู่เซิร์ฟเวอร์ที่เราเพิ่งใช้สำหรับ // 3 ตั้งค่าข้อมูลพารามิเตอร์ที่ร้องขอโพสต์ SetRequestHeader ("เนื้อหาประเภท", "แอปพลิเคชัน/X-WWW-FORM-URLENCODED; charset = UTF-8"); // ตั้งค่า transcoding post.setParameter ("uid", "xxxx"); // พารามิเตอร์ post.setParameter ("SMSMOB", "xxxx"); post.setParameter ("smstext", "ทดสอบ!"); // 4. ส่งคำขอและส่งคืนรหัสสถานะรหัส int = client.executemethod (โพสต์); System.out.println ("รหัสสถานะที่ส่งคืนโดย http:" + รหัส); // ถ้าพิมพ์ 200 หมายความว่ามันเป็นปกติ // 5 รับข้อมูลที่ส่งคืนโดย Server String result = post.getResponseBodyString (); System.out.println ("ผลลัพธ์การส่ง SMS คือ:" + ผลลัพธ์); // ถ้าคุณส่งคืน 1 หมายความว่าการส่งเป็นปกติ}} ถัดไปคุณสามารถเรียกใช้โปรแกรม Java นี้และส่งข้อความให้ตัวเองเพื่อทดสอบตัวเอง ผลการทดสอบของฉันมีดังนี้:! [ผลการทดสอบ] (http://img.blog.csdn.net/20160523122802066) ### ** 3.2 ห่อหุ้มเป็น MessageUtilimpl ** ถัดไปเราจะใช้ฟังก์ชั่นนี้ในโครงการของเราเอง เราห่อหุ้มกระบวนการด้านบนลงในคลาสเครื่องมือ MessageUtilImpl และแยกอินเทอร์เฟซดังนี้:
// The MessageUtil Interface Interface Public Interface MessageUtil {Public Abstract Void SendMessage (String Phonenum, String ID); // MessageUtilimpl คลาสการใช้งาน @component ("MessageUtil") คลาสสาธารณะ MessageUtilImpl ใช้ MessageUtil เปิดเบราว์เซอร์ httpClient client = new httpClient (); // 2. วิธีการสร้างคำขอ: รับ/โพสต์โพสต์โพสต์ = postmethod ใหม่ ("http://utf8.sms.sms.webchinese.cn/"); // 3. ตั้งค่าข้อมูลพารามิเตอร์ที่ร้องขอโพสต์ SetRequestHeader ("ประเภทเนื้อหา", "แอปพลิเคชัน/x-www-form-urlencoded; charset = utf-8"); post.setParameter ("UID", "ESON_15"); post.setParameter ("คีย์", "0537729D0B59A7E7358B"); Post.SetParameter ("SMSMOB", "15216771570"); post.setParameter ("smstext", "ทดสอบ!"); // 4. ส่งคำขอและส่งคืนรหัสสถานะลอง {int code = 0; code = client.executemethod (โพสต์); System.out.println ("รหัสสถานะส่งคืนโดย http:" + รหัส); // 5. รับข้อมูลที่ส่งคืนโดย Server String result = post.getResponseBodyString (); System.out.println ("ผลลัพธ์การส่ง SMS คือ:" + ผลลัพธ์); } catch (exception e) {e.printstacktrace (); โยน RuntimeException ใหม่ (E); } ในที่สุด {post.releaseconnection (); -4. ปรับปรุงการจ่ายเงิน
เสร็จสิ้นการห่อหุ้มของคลาสเครื่องมือ ต่อไปเราจะนำคลาสเครื่องมือลงใน baseaction และฉีดผ่านคำอธิบายประกอบ @Resource เพื่อใช้งานโดยการกระทำ ด้านล่างเราจะปรับปรุงวิธี backbank () ในการจ่ายก่อนหน้านี้ดังนี้:
@Controller ("การจ่ายเงิน")@Scope ("Prototype") การจ่ายเงินระดับสาธารณะขยาย baseaction <jobch> ใช้ parameteraware {// บันทึกรหัสที่ไม่เกี่ยวข้อง ... โมฆะสาธารณะ Backbank () {backdata backdata = (backdata); System.out.println (รุ่น); บูลีน isok = payservice.checkbackdata (backdata); if (isok) {// 1 อัปเดตสถานะการสั่งซื้อพารามิเตอร์จะถูกส่งด้วยตัวเองตามสถานการณ์ในฐานข้อมูลและใช้เพื่อทดสอบ ForderService.upDatestatusById (Integer.ParseInt (backdata.getR6_Order ()), 2); // 2. ส่งอีเมลตามสตริงที่อยู่อีเมลผู้ใช้ emailaddress = backdata.getR8_MP (). แยก (",") [0]; emailutil.sendemail (emailaddress, backdata.getr6_order ()); // 3. ส่งสตริงข้อความโทรศัพท์มือถือ phonenum = backdata.getr8_mp (). แยก (",") [1]; MessageUtil.SendMessage (Phonenum, backdata.getr6_order ()); System.out.println ("---- ประสบความสำเร็จ !! -----"); } else {system.out.println ("---- false !!! -----"); - ข้อมูลที่ส่งคืนจาก Yibao จะถูกบันทึกไว้ในพารามิเตอร์ R6_ORDER และอีเมลและหมายเลขโทรศัพท์ของผู้ใช้ในพารามิเตอร์ R8_MP อย่างแรกคืออีเมลและหมายเลขที่สองคือหมายเลขโทรศัพท์มือถือคั่นด้วยเครื่องหมายจุลภาคดังนั้นเราจึงต้องได้รับหมายเลขโทรศัพท์มือถือของผู้ใช้ก่อนจากนั้นส่งข้อความ ตกลงฟังก์ชั่นของการส่งข้อความไปยังผู้ใช้หลังจากการชำระเงินเสร็จสมบูรณ์แล้ว
ลิงค์ดั้งเดิม: http://blog.csdn.net/eson_15/article/details/51475431
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น