Na seção anterior, usamos o Java Mail para concluir a função de enviar e -mails para os compradores e deixamos uma função, que é enviar mensagens de texto aos compradores e dizer a eles que o pedido foi gerado. Esta seção apresenta principalmente como enviar mensagens de texto automaticamente para os usuários após a conclusão do pagamento.
1. Aplique para a função de envio de SMS
É óbvio que não podemos enviar mensagens de texto, nem temos a função de fazer mensagens de texto, por isso precisamos confiar em operadores de terceiros. No entanto, como a China Mobile, a China Unicom e a Telecom não nos fornecerá diretamente serviços de SMS, mas primeiro fornecerá serviços de SMS a alguns operadores e, em seguida, esses operadores nos fornecerão.
Existe um operador chamado "Comunicação SMS de SMS da China Construction SMS" (endereço oficial do site). Este operador pode nos fornecer serviços SMS. Depois de entrar no site oficial, você pode verificar os padrões de carregamento. Obviamente, você pode obter 5 mensagens de texto gratuitas pela primeira vez, mas as gratuitas podem não ser muito estáveis ou o tempo de envio é relativamente longo. Depende do personagem, mas os pagos são basicamente bons. Seu modelo de lucro é obter mensagens de texto da Mobile, China Unicom ou Telecom a um preço mais baixo e vendê -las aos usuários. Obviamente, existem pacotes de desconto. Esse tipo de produto é geralmente adquirido por grandes empresas ou serviços que precisam enviar mensagens de texto para os usuários.
Primeiro, registramos uma conta (na verdade, para obter as 5 mensagens curtas gratuitas para testar nosso programa). Para esclarecer o processo, tento escrevê -lo o mais detalhado possível. Por favor, veja a seguinte interface:
Você pode preencher todos os nomes e e-mails, basta preencher seus próprios nomes no seu telefone, porque receberá o nome de usuário e a senha conectados. Após o login, podemos ver que existem 5 mensagens de texto gratuitas que podem ser enviadas, como segue:
Dicas amigáveis: não use 5 mensagens de texto gratuitas no primeiro dia e você enviará outras 5 mensagens no segundo dia e depois não as enviará ~
Em seguida, clicamos no SMS de envio na figura acima e uma interface SMS será exibida. Não queremos enviar SMS, mas defina alguns sufixos de SMS. Ou seja, depois que o usuário recebe o SMS, há um sufixo no final para explicar de onde vem, como segue:
Após o salvamento, clicamos na "interface da API SMS" na coluna esquerda, e a API para enviar mensagens de texto será exibida (o endereço da conexão também é fornecido aqui). Quando programamos, precisamos nos referir à interface da API que eles nos fornecem, assim como a função de pagamento antes, usando a interface oficial fornecida pelo Yibao. Vamos dar uma breve olhada:
O exposto acima é apenas um pouco do conteúdo. Para detalhes, clique no link fornecido acima. Clicamos na tecla na figura para modificá -la imediatamente, principalmente para ver qual é a chave, copie a chave e salvá -la. Será usado ao escrever o programa mais tarde.
Ok, agora os preparativos estão feitos e a API está disponível. Agora podemos começar a desenvolver a função SMS.
2. Teste se o servidor de terceiros é normal ou não
Antes de desenvolver a função SMS, vamos testar se o servidor criado pela rede da China é normal. De acordo com os dados fornecidos pela página da API SMS, podemos usar a codificação UTF-8 para enviar o endereço da interface:
http://utf8.sms.webchinese.cn/?uid=user Nome deste site e chave = chave de segurança da interface & smsmob = número de telefone celular & smStext = Código de verificação: 8888
Vamos testar se o utf8.sms.webchines.cn é normal. Vamos escrever uma página test.jsp no projeto:
<%@ Page Language = "Java" import = "java.util. você mesmo-> <a href = "http://utf8.sms.webchinese.cn/?uid=userName deste site & key = Interface Security Key & smsMob = Número do celular e SmStext = Código de verificação: 8888"> servidor </a> </body> </html>
(Lembrete amigável: não teste várias vezes durante o teste. Uma vez é suficiente. Depende principalmente se o servidor é normal. Você deve deixá -lo para testar posterior várias vezes. Você também pode escrever um parâmetro incorretamente. Se um número negativo é retornado, como o servidor é usado para que o número seja usado para que o número seja usado para que o número seja usado nos parâmetros fornecidos. também estão incluídos no link, o que definitivamente não é possível.)
3. Desenvolva a função de envio de SMS
### ** 3.1 Enviar teste de processo SMS ** Usando a função de envio de SMS, são necessários três pacotes de jars a seguir: (Endereço gratuito de download: http://download.csdn.net/detail/eson_15/9528009)-Common-codec-1.4.Jar`-Comons-Htttttttpl-Flog-)-Common-Codec-1.4 `Commons-logging-1.1.1.jar` Em seguida, escreveremos uma classe Java normal para concluir a função de envio de SMS e testar a correção:
classe pública sendMessagedemo {public static void main (string [] args) lança exceção {// 1. Abra o navegador httpclient client = new httpClient (); // 2. Como criar uma solicitação: obtenha/post post method post = new PostMethod ("http://utf8.sms.webchinese.cn/"); // O endereço do servidor que acabamos de solicitar // 3. Defina as informações de parâmetros solicitadas post.setRequestHeader ("conteúdo-tipo", "Application/x-www-forma-urlencoded; charset = utf-8"); // Defina transcodificação post.setParameter ("uid", "xxxx"); // os parâmetros são os mesmos como o post.set.setParam ("xxxx"); // os parâmetros são os mesmos como o post.set.setParamPa ("xxxx"); // os parâmetros são os mesmos. post.setParameter ("SMSMOB", "XXXX"); post.setParameter ("smStext", "teste!"); // 4. Envie a solicitação e retorne o código de status int code = client.executemethod (post); System.out.println ("Código de status retornado por http:" + código); // Se 200 for impresso, significa que é normal // 5. Obtenha as informações de dados retornadas pelo servidor String result = Post.GetResponseBodyAsstring (); System.out.println ("O resultado do envio de SMS é:" + resultado); // Se você retornar 1, significa que o envio é normal}} Em seguida, você pode executar este programa Java e enviá -lo a si mesmo uma mensagem de texto para testá -lo. Meus resultados dos meus testes são os seguintes :! [Resultados do teste] (http://img.blog.csdn.net/20160523122802066) ### ** 3.2 Encapsulado no messageUtilimpl ** Em seguida, usaremos esta função em nosso próprio projeto. Encapsulamos o processo acima na classe de ferramentas MessageUtilimpl e extraímos a interface, como segue:
// A interface de mensagem extraída interface pública interface messageUtil {public abstract void sendMessage (string phonenum, string id); // messageUtilImpl implementação classe @Component ("messageUtil") public class MessageUtilimpl implementa MessageUtil {@Override void sendMessage (string PhonNum, id) {@Override sendMessage. Abra o navegador httpclient client = new httpClient (); // 2. Como criar uma solicitação: obtenha/post post method post = new PostMethod ("http://utf8.sms.webchinese.cn/"); // 3. Definir informações de parâmetro solicitadas post.setRequestHeader ("Content-Type", "Application/X-Www-Form-Urlencoded; Charset = UTF-8"); post.setParameter ("UID", "Eson_15"); post.setParameter ("key", "0537729D0B59A7E7358B"); post.setParameter ("SMSMOB", "15216771570"); post.setParameter ("smStext", "teste!"); // 4. Envie a solicitação e retorne o código de status, tente {int code = 0; código = client.Executemethod (post); System.out.println ("O código de status retornado por http:" + código); // 5. Obtenha as informações de dados retornadas pelo servidor String result = Post.GetResponseBodyAsstring (); System.out.println ("O resultado do envio de SMS é:" + resultado); } catch (Exceção e) {e.printStackTrace (); lançar nova execução de tempo de execução (e); } finalmente {post.releaseconnection (); }}}4. Melhore a PayAction
Preencha o encapsulamento da classe de ferramentas. Em seguida, colocamos a classe de ferramentas em bases e a injetamos através da anotação @Resource para uso por ação. Abaixo, melhoraremos o método backbank () no PayAction anterior, como segue:
@Controller ("PayAction")@Scope ("Prototype") public class PayAction estende o Baseaction <ject> implementa parameterAware {// salvar código irrelevante ... public void backbank () {backdata backdata = (backdata) modelo; System.out.println (modelo); boolean isok = payService.checkbackdata (backdata); if (isok) {// 1. Atualize o status do pedido, os parâmetros são transmitidos por si só de acordo com a situação no banco de dados e são usados para testar o ForderService.UpDatestatusById (Integer.parseint (backdata.getR6_order ()), 2); // 2. Envie email de acordo com o endereço de e -mail do usuário emailaddress = backdata.getR8_mp (). Split (",") [0]; emailutil.sendEmail (emailAddress, backdata.getR6_order ()); // 3. Envie a mensagem de texto do telefone celular string phonenum = backdata.getR8_mp (). Split (",") [1]; messageUtil.sendMessage (Phonenum, backdata.getR6_order ()); System.out.println ("---- Sucesso !! -----"); } else {System.out.println ("---- FALSE !!! -----"); }}} As informações retornadas de Yibao são salvas no parâmetro R6_Order e o email e o número de telefone do usuário no parâmetro R8_MP. O primeiro é o email e o segundo é o número do telefone celular, separado por vírgulas, por isso precisamos primeiro obter o número do telefone celular do usuário e depois enviar uma mensagem de texto. OK, a função de enviar mensagens de texto ao usuário após a conclusão do pagamento é concluída.
Link original: http://blog.csdn.net/eson_15/article/details/51475431
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.