Dans la section précédente, nous avons utilisé Java Mail pour compléter la fonction de l'envoi de courriels aux acheteurs, et avons laissé une fonction, qui est d'envoyer des SMS aux acheteurs et de leur dire que la commande a été générée. Cette section présente principalement comment envoyer automatiquement des SMS aux utilisateurs une fois le paiement terminé.
1. Appliquer la fonction d'envoi SMS
Il est évident que nous ne pouvons pas envoyer nous-mêmes des messages texte, et nous n'avons pas la fonction de faire des messages texte, nous devons donc compter sur des opérateurs tiers. Cependant, comme China Mobile, China Unicom et Telecom ne nous fourniront pas directement des services SMS, mais fourniront d'abord des services SMS à certains opérateurs, puis ces opérateurs nous fourniront avec eux.
Il existe un opérateur appelé "China Net Construction SMS Communication" (adresse officielle du site Web). Cet opérateur peut nous fournir des services SMS. Après être entré sur le site officiel, vous pouvez vérifier les normes de charge. Bien sûr, vous pouvez obtenir 5 messages texte gratuits pour la première fois, mais ceux gratuits peuvent ne pas être trop stables, ou le temps d'envoi est relativement long. Cela dépend du personnage, mais ceux payants sont fondamentalement bons. Son modèle de profit est d'obtenir des messages texte de Mobile, China Unicom ou Telecom à un prix inférieur et de les vendre aux utilisateurs. Bien sûr, il existe des forfaits de réduction. Ce type de produit est généralement acheté par les grandes entreprises ou les services qui doivent envoyer des messages texte aux utilisateurs.
Tout d'abord, nous enregistrons un compte (en fait pour obtenir les 5 messages courts gratuits pour tester notre programme). Afin de clarifier le processus, j'essaie de l'écrire aussi détaillé que possible. Veuillez consulter l'interface suivante:
Vous pouvez remplir tous les noms et e-mails, remplissez simplement vos propres noms sur votre téléphone, car vous recevrez le nom d'utilisateur et le mot de passe connectés. Après vous être connecté, nous pouvons voir qu'il y a 5 messages texte gratuits qui peuvent être envoyés, comme suit:
Conseils amicaux: n'utilisez pas 5 messages texte gratuits le premier jour, et vous enverrez 5 autres messages le deuxième jour, puis vous ne les enverrez pas ~
Ensuite, nous cliquons sur les SMS Envoyer dans l'image ci-dessus, et une interface SMS apparaîtra. Nous ne voulons pas envoyer de SMS, mais définissons quelques suffixes SMS. Autrement dit, après que l'utilisateur a reçu le SMS, il y a un suffixe à la fin pour expliquer d'où il vient, comme suit:
Après enregistrement, nous cliquons sur "l'interface de l'API SMS" dans la colonne de gauche, et l'API pour l'envoi de messages texte apparaîtra (l'adresse de la connexion est également donnée ici). Lorsque nous programmons, nous devons nous référer à l'interface API qu'ils nous fournissent, tout comme la fonction de paiement avant, en utilisant l'interface officielle fournie par Yibao. Jetons un bref aperçu:
Ce qui précède n'est qu'une partie du contenu. Pour plus de détails, veuillez cliquer sur le lien ci-dessus. Nous cliquons sur la clé de l'image pour la modifier immédiatement, principalement pour voir quelle est la clé, puis copiez la clé et enregistrez-la. Il sera utilisé lors de la rédaction du programme plus tard.
D'accord, maintenant les préparatifs sont effectués et l'API est disponible. Nous pouvons maintenant commencer à développer la fonction SMS.
2. Testez si le serveur tiers est normal ou non
Avant de développer la fonction SMS, testons si le serveur construit par China Network est normal. Selon les données fournies par la page API SMS, nous pouvons utiliser le codage UTF-8 pour envoyer l'adresse d'interface:
http://utf8.sms.webchinese.cn/?uid=User Nom de ce site & key = Interface Security Key & SMSMOB = Numéro de téléphone mobile & SMSTEXT = CODE DE VÉRIFICATION: 8888
Tissons si UTF8.SMS.WEBCHINES.CN est normal. Écrivons une page test.jsp dans le projet:
<% @ Page Language = "Java" Import = "Java.util. *" Pageencoding = "UTF-8"%> <! DocType Html public "- // w3c // dtd html 4.01 transitional // en"> <html> <fread> <% @ incluse File = "/ public. vous-même -> <a href = "http://utf8.sms.webchinese.cn/?uid=Username de ce site & key = Interface Security Key & smsmob = Mobile Number & Smstext = Verification Code: 8888"> Test Server </a> </body> </ html>
(Rappel convivial: ne testez pas plusieurs fois pendant les tests. Une fois, il suffit. Cela dépend principalement de savoir si le serveur est normal. Vous devez le laisser pour des tests ultérieurs plusieurs fois. Vous pouvez également écrire un paramètre incorrectement. dans le lien, ce qui n'est certainement pas possible.)
3. Développer des SMS Envoyer une fonction
### ** 3.1 Test de processus SMS Envoyer ** En utilisant la fonction d'envoi SMS, les trois packages de jar suivants sont requis: (Adresse de téléchargement gratuite: http://download.csdn.net/detail/eson_15/9528009) - `commons-codec-1.4 `Commons-Logging-1.1.1.jar` Ensuite, nous écrivons une classe Java normale pour compléter la fonction d'envoi SMS et tester l'exactitude:
classe publique SendMessageDemo {public static void main (String [] args) lève une exception {// 1. Ouvrez le navigateur httpClient client = new httpClient (); // 2. Comment créer une demande: Get / Post PostMethod Post = new PostMethod ("http://utf8.sms.webchinese.cn/"); // L'adresse du serveur que nous venons de demander // 3. Définissez les informations sur les paramètres demandées Post.SetRequestHeader ("Content-Type", "Application / X-Www-Form-Urlencoded; charSet = UTF-8"); // Set Transcoding Post.SetParameter ("uid", "xxxx"); // Les paramètres sont les mêmes que ci-dessus post.SetParameter ("Key", "xxxx"); post.setParamètre ("smsmob", "xxxx"); poster.setParameter ("smstext", "test!"); // 4. Soumettez la demande et renvoyez le code d'état int code = client.execureTeMethod (post); System.out.println ("Code d'état renvoyé par http:" + code); // Si 200 est imprimé, cela signifie qu'il est normal // 5. Obtenez les informations de données renvoyées par le serveur STRING Result = post.getResponseBodyAsstring (); System.out.println ("SMS Le résultat d'envoi est:" + résultat); // Si vous retournez 1, cela signifie que l'envoi est normal}} Ensuite, vous pouvez exécuter ce programme Java et l'envoyer un SMS pour le tester. Mes résultats de test sont les suivants :! [RÉSULTATS DE TEST] (http://img.blog.csdn.net/20160523122802066) ### ** 3.2 Encapsule dans MessageUtilimpl ** Nous utiliserons cette fonction dans notre propre projet. Nous encapsulons le processus ci-dessus dans la classe d'outils MessageUtilimpl et extrons l'interface, comme suit:
// L'interface MessageUtil extraite MessageUtil {public abstract void sendMessage (String Phonenum, String id); // MessageUtilimpl Implémentation Class @Component ("MessageUtil") MessageUtilimpl mettant en œuvre MessageUtil {@Override public void SendMessage (String Phonenum, String id) {// 1. Ouvrez le navigateur httpClient client = new httpClient (); // 2. Comment créer une demande: Get / Post PostMethod Post = new PostMethod ("http://utf8.sms.webchinese.cn/"); // 3. Définir les informations sur les paramètres demandés Post.SetRequestHeader ("Content-Type", "Application / X-WWW-Form-Urlencoded; charSet = UTF-8"); poster.setParameter ("uid", "eson_15"); post.setParameter ("Key", "0537729d0b59a7e7358b"); poster.setParameter ("smsmob", "15216771570"); poster.setParameter ("smstext", "test!"); // 4. Soumettez la demande et renvoyez le code d'état try {int code = 0; Code = client.executeMethod (post); System.out.println ("Le code d'état renvoyé par http:" + code); // 5. Obtenez les informations de données renvoyées par le serveur STRING Result = post.getResponseBodyAsstring (); System.out.println ("Le résultat d'envoi SMS est:" + résultat); } catch (exception e) {e.printStackTrace (); Jetez une nouvelle RuntimeException (E); } enfin {post.ReleSeconnection (); }}}4. Améliorer PayAction
Complétez l'encapsulation de la classe d'outils. Ensuite, nous mettons la classe d'outils dans BaseAction et l'injectons par l'annotation @Resource pour une utilisation par action. Ci-dessous, nous améliorerons la méthode Backbank () dans la précédente PayAction, comme suit:
@Controller ("PayAction") @ Scope ("Prototype") Public Class PayAction étend BaseAction <Object> Implémentez ParameterAware {// Enregistrer le code non pertinent ... Public void Backbank () {BackData Backdata = (Backdata) modèle; System.out.println (modèle); booléen isok = payservice.checkbackData (backdata); if (isOK) {// 1. Mettez à jour l'état de l'ordre, les paramètres sont transmis par lui-même en fonction de la situation dans la base de données et sont utilisés pour tester ForderService.UpDateStatusById (Integer.Parseint (backdata.getr6_order ()), 2); // 2. Envoyer un e-mail en fonction de l'adresse e-mail de l'utilisateur String EmailAddress = backdata.getr8_mp (). Split (",") [0]; CourrielUtil.Sendemail (EmailAddress, backdata.getr6_order ()); // 3. Envoyer une chaîne de messages texte de téléphone mobile Phonenum = backdata.getr8_mp (). Split (",") [1]; MessageUtil.SendMessage (Phonenum, backdata.getr6_order ()); System.out.println ("---- Succès !! -----"); } else {System.out.println ("---- false !!! -----"); }}} Les informations renvoyées de Yibao sont enregistrées dans le paramètre R6_Order et l'e-mail et le numéro de téléphone de l'utilisateur dans le paramètre R8_MP. Le premier est l'e-mail et le second est le numéro de téléphone mobile, séparé par des virgules, nous devons donc d'abord obtenir le numéro de téléphone mobile de l'utilisateur, puis envoyer un SMS. Ok, la fonction d'envoi de SMS à l'utilisateur une fois le paiement terminé est terminée.
Lien original: http://blog.csdn.net/eson_15/article/details/51475431
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.