Kata pengantar
Baru -baru ini, saya telah bekerja pada sistem manajemen meter air cerdas jarak jauh. Ada fungsi dari proses ini yang dapat didaftarkan menggunakan ponsel di halaman pendaftaran. Saya telah mencari waktu yang lama sebelum saya secara kasar memahami proses implementasi kode verifikasi ponsel. Saya akan membaginya dengan Anda hari ini. Saya tidak akan mengatakan banyak hal di bawah ini, mari kita lihat perkenalan terperinci bersama.
Proses Implementasi Kode Verifikasi SMS
1. Bangun kode verifikasi ponsel: Gunakan nomor acak yang diperlukan oleh objek acak untuk menghasilkan sebagai kode verifikasi, seperti kode verifikasi 4-bit: nomor acak antara 1000 dan 9999;
2. Gunakan antarmuka untuk mengirim nomor ponsel dan kode kode verifikasi ke platform SMS, dan kemudian platform SMS mengirim kode verifikasi ke nomor ponsel yang diformulasikan. Parameter antarmuka umumnya meliputi: nomor ponsel target, kode verifikasi acak (atau termasuk waktu kedaluwarsa), alamat antarmuka platform, dan kata sandi platform;
3. Simpan informasi yang dikembalikan oleh antarmuka (biasanya data teks JSON, dan kemudian perlu dikonversi ke format objek JSON);
4. Simpan kode verifikasi nomor ponsel dan waktu operasi di sesi untuk verifikasi selanjutnya;
5. menerima kode verifikasi dan data lain yang diisi oleh pengguna;
6. Bandingkan apakah kode verifikasi yang diajukan konsisten dengan kode verifikasi dalam sesi, dan tentukan apakah tindakan pengajuan berada dalam periode validitas;
7. Kode verifikasi benar dan dalam periode validitas, permintaan diteruskan untuk memproses bisnis yang sesuai.
Hari ini kami akan menerapkan 4 langkah pertama:
Untuk menyederhanakan proses, kami menggunakan kode verifikasi ponsel tetap alih -alih nomor yang dihasilkan secara acak sebagai kode verifikasi
Di sini kami memiliki halaman front-end dan halaman pemrosesan logika back-end. Berikut ini adalah dua item untuk dijelaskan secara singkat:
Halaman front-end
<hody> <h1> <% kirim kirim = kirim baru (); String postData = "Account = Jamesxt & Password = 18770918982LKX & Mobile = 18770918982 & content ="+java.net.urlencoder.encode ("Kode pesanan Anda: 4557. Jika Anda perlu bantuan, silakan hubungi layanan pelanggan.", "UTF-8"); //out.println(postdata); String ret = send.sms (postdata, "http://sms.106jiekou.com/utf8/sms.aspx"); out.println (ret); // Harap deserialisasi string yang dikembalikan sendiri dan terapkan logika Anda sendiri %> </h1> </body>PostData: Ini adalah data yang tertunda yang ingin Anda kirimkan ke platform layanan SMS. Ini umumnya mencakup nama akun pengguna dan kata sandi dari pendaftar platform layanan SMS, serta konten lengkap dari siapa Anda ingin mengirim kode verifikasi SMS dan informasi yang dimiliki kode verifikasi SMS.
String ret = send.sms (postdata, http://sms.106jiekou.com/utf8/sms.aspx);
Ini untuk mengikat data ke situs web platform layanan SMS, yaitu platform mana yang akan mengirimkan data yang dikirimkan ke untuk diproses.
Latar Belakang Kelas Pemrosesan Logika:
Kelas Publik Kirim {// Ada dua parameter dalam metode SMS. Parameter ini ditentukan oleh postdata yang dikirimkan oleh halaman latar depan dan alamat layanan SMS yang terikat pada yang pertama. Public Static String SMS (String PostData, String Posturl) {coba {// Kirim Posting Permintaan URL URL = URL baru (posturl); HttpurlConnection conn = (httpurlconnection) url.openconnection (); Conn.setRequestMethod ("Post"); conn.setRequestProperty ("tipe konten", "Aplikasi/X-WWW-Form-Urlencoded"); Conn.setRequestProperty ("Connection", "Keep-Alive"); Conn.setusecaches (false); Conn.SetDoOutput (true); conn.setRequestProperty ("Panjang konten", "" + postdata.length ()); OutputStreamWriter out = outputStreamWriter baru (conn.getoutputStream (), "UTF-8"); // Masukkan data yang dikirimkan oleh latar depan ke aliran output, yaitu, kirim permintaan layanan ke platform layanan SMS out.write (postdata); out.flush (); out.close (); // Dapatkan kode status respons if (conn.getResponsecode ()! = HttpurlConnection.http_ok) {System.out.println ("Connect Fail!"); kembali ""; } // Dapatkan baris string konten respons, hasil = ""; BufferedReader di = BufferedReader baru (inputStreamReader baru (conn.getInputStream (), "UTF-8")); while ((line = in.readline ())! = null) {result + = line + "/n"; } in.close (); hasil pengembalian; } catch (ioException e) {e.printstacktrace (System.out); } kembali ""; }} Akhirnya, alamat kode sumber demo dilampirkan: http://xiazai.vevb.com/201712/yuanma/mobileregist(vevb.com).rar
Alamat penyedia layanan SMS yang digunakan dalam demo ini adalah: http://www.106jiekou.com/login/?returnurl=/member/trigger/templates/
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.