SSH框架網(wǎng)上商城項目第26戰(zhàn)之訂單支付后發(fā)送短信提醒
上一節(jié)我們使用了Java mail完成了給買家發(fā)送郵件的功能,還遺留一個功能,就是給買家發(fā)送短信,告訴他訂單已經(jīng)生成之類的。這一節(jié)主要介紹一下如何在用戶支付完成后自動給用戶發(fā)送短信。
1. 申請短信發(fā)送功能
很明顯,我們自己不能發(fā)短信,也沒有做短信的功能,所以我們需要去借助第三方的運營商。但是像中國移動,聯(lián)通,電信這種不會直接給我們提供短信服務(wù),而是先把短信服務(wù)提供給一些運營商,然后這些運營商再提供給我們。
有一個運營商叫“中國網(wǎng)建sms短信通”(官網(wǎng)地址)。這個運營商可以給我們提供短信的服務(wù),進入官網(wǎng)后可以看下收費標準,當然咯,首次注冊免費送5條短信,不過免費的可能不是太穩(wěn)定,或者發(fā)送的時間比較久,這得看人品,不過付費的基本上都挺好的。他的盈利模式就是用較低的價格從移動,聯(lián)通或者電信那邊拿到短信,然后賣給用戶,當然有優(yōu)惠套餐的,這種一般都是大公司或者有需要向用戶發(fā)送短信的業(yè)務(wù)時會購買。
首先我們?nèi)プ砸粋€賬號(其實是為了拿到那5條免費的短息來測試我們的程序),為了把流程說清楚,我盡量寫詳細一點,請看如下界面:
像這些姓名啊,email啊都可以隨便填的,手機填自己的就行了,因為會收到登陸的用戶名和密碼。登陸后我們可以看到有5條免費短信可以發(fā)送,如下:
友情提示:5條免費短信第一天別用完,第二天又會再送5條,然后就不送了~
然后我們點擊上面圖片中的發(fā)送短信,會彈出一個發(fā)送短信的界面,我們不是為了去發(fā)送短信,而是去設(shè)置一些短信的后綴,即用戶收到短信后,最后面都有個后綴說明來自哪里,如下:
保存之后,我們點擊左邊欄目中的“短信API接口”,就會跳出關(guān)于發(fā)送短信的API(這里也給出那個連接的地址),我們編程就需要參考他們提供給我們的API接口,就跟前面做支付功能一樣的,使用易寶給我們提供的官方接口。我們簡單看一下:
上面只是部分內(nèi)容,詳情可以點擊上面給的鏈接。我們點擊圖片中密鑰的立即修改,主要是看一下密鑰是啥,然后將密鑰復(fù)制下來,保存一下,后面寫程序的時候要用到。
好了,現(xiàn)在準備工作都做好了,API也有了,現(xiàn)在我們可以著手開發(fā)短信功能了。
2. 測試一下第三方服務(wù)器正常與否
在開發(fā)短信功能之前,我們先來測試一下這個中國網(wǎng)建的服務(wù)器是否正常,根據(jù)短信API頁面提供的數(shù)據(jù),我們可以使用UTF-8編碼發(fā)送接口的地址:
http://utf8.sms.webchinese.cn/?Uid=本站用戶名&Key=接口安全秘鑰&smsMob=手機號碼&smsText=驗證碼:8888
來測試一下utf8.sms.webchines.cn是否正常。下面在工程中寫一個test.jsp頁面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ include file="/public/head.jspf" %>
</head>
<body>
<!-- 參數(shù)自己要填好 -->
<a >
測試服務(wù)器
</a>
</body>
</html>
(友情提示:在測試的時候不要多次測試,一次就夠了,主要看服務(wù)器是否正常,還得留幾次后面測試用。也可以將某個參數(shù)寫錯,如果返回一個負數(shù),說明服務(wù)器是正常的,可以根據(jù)API頁面提供的參數(shù)看相應(yīng)的負數(shù)代表哪里出錯了。這只是用來測試的,實際中并不能這么去發(fā),因為鏈接中還有我的用戶名和密碼,肯定不行。)
3. 開發(fā)短信發(fā)送功能
###**3.1 發(fā)送短信流程測試** 使用短信發(fā)送功能,需要以下三個jar包:(免費下載地址:http://download.csdn.net/detail/eson_15/9528009) - `commons-codec-1.4.jar` - `commons-httpclient-3.1.jar` - `commons-logging-1.1.1.jar` 下面我們先寫一個普通的java類來完成短信發(fā)送功能,并測試正確性:
public class SendMessageDemo {
public static void main(String[] args) throws Exception {
//1. 打開瀏覽器
HttpClient client = new HttpClient();
//2. 創(chuàng)建請求的方式:get/post
PostMethod post = new PostMethod("http://utf8.sms.webchinese.cn/");//剛剛我們申請的那個服務(wù)器地址
//3. 設(shè)置請求的參數(shù)信息
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");//設(shè)置轉(zhuǎn)碼
post.setParameter("Uid", "xxxx");//參數(shù)都和上面的一樣
post.setParameter("Key", "xxxx");
post.setParameter("smsMob", "xxxx");
post.setParameter("smsText", "測試一下!");
//4. 提交請求并返回狀態(tài)碼
int code = client.executeMethod(post);
System.out.println("http返回的狀態(tài)碼:" + code);//如果打印出200說明正常
//5. 獲取服務(wù)器端返回的數(shù)據(jù)信息
String result = post.getResponseBodyAsString();
System.out.println("短信發(fā)送結(jié)果為:" + result);//如果返回1說明發(fā)送正常
}
}
接下來就可以運行一下這個java程序發(fā)送給自己一條短信測試一下了。我的測試結(jié)果如下:  ###**3.2 封裝到MessageUtilImpl中** 接下來就要在我們自己的項目中使用這個功能了,我們將上面的流程封裝到MessageUtilImpl工具類中,并抽取接口,如下:
//抽取后的MessageUtil接口
public interface MessageUtil {
public abstract void sendMessage(String phoneNum, String id);
//MessageUtilImpl實現(xiàn)類
@Component("messageUtil")
public class MessageUtilImpl implements MessageUtil {
@Override
public void sendMessage(String phoneNum, String id) {
//1. 打開瀏覽器
HttpClient client = new HttpClient();
//2. 創(chuàng)建請求的方式:get/post
PostMethod post = new PostMethod("http://utf8.sms.webchinese.cn/");
//3. 設(shè)置請求的參數(shù)信息
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", "測試一下!");
//4. 提交請求并返回狀態(tài)碼
try {
int code = 0;
code = client.executeMethod(post);
System.out.println("http返回的狀態(tài)碼:" + code);
//5. 獲取服務(wù)器端返回的數(shù)據(jù)信息
String result = post.getResponseBodyAsString();
System.out.println("短信發(fā)送結(jié)果為:" + result);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
post.releaseConnection();
}
}
}
4. 完善payAction
完成了工具類的封裝,接下來我們把該工具類放到BaseAction中,通過@Resource注解注入進來,供Action使用,下面我們完善前面的payAction中的backBank()方法,如下:
@Controller("payAction")
@Scope("prototype")
public class PayAction extends BaseAction<Object> implements ParameterAware {
//省去無關(guān)代碼……
public void backBank() {
BackData backData = (BackData)model;
System.out.println(model);
boolean isOK = payService.checkBackData(backData);
if(isOK) {
//1. 更新訂單狀態(tài),參數(shù)是自己根據(jù)數(shù)據(jù)庫中的情況傳進去的,用來測試
forderService.updateStatusById(Integer.parseInt(backData.getR6_Order()), 2);
//2. 根據(jù)user郵箱地址,發(fā)送郵件
String emailAddress = backData.getR8_MP().split(",")[0];
emailUtil.sendEmail(emailAddress, backData.getR6_Order());
//3. 發(fā)送手機短信
String phoneNum = backData.getR8_MP().split(",")[1];
messageUtil.sendMessage(phoneNum, backData.getR6_Order());
System.out.println("----success!!----");
} else {
System.out.println("----false!!!----");
}
}
}
從易寶那邊返回的信息中r6_Order參數(shù)中保存的是訂單的編號,r8_MP參數(shù)中是用戶的郵箱和電話,第一個是郵箱第二個是手機號碼,用逗號隔開了,所以我們首先要獲取用戶的手機號碼,然后再來發(fā)送短信。好了,支付完成后給用戶發(fā)送短信的功能就完成了。
原文鏈接:http://blog.csdn.net/eson_15/article/details/51475431
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家?! ?/p>
- SSH框架網(wǎng)上商城項目第8戰(zhàn)之查詢和刪除商品類別功能實現(xiàn)
- SSH框架網(wǎng)上商城項目第4戰(zhàn)之EasyUI菜單的實現(xiàn)
- SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取
- java網(wǎng)上商城開發(fā)之郵件發(fā)送功能(全)
- php 網(wǎng)上商城促銷設(shè)計實例代碼
- php網(wǎng)上商城購物車設(shè)計代碼分享
- SSH框架網(wǎng)上商城項目第30戰(zhàn)之項目總結(jié)(附源碼下載地址)
- SSH框架網(wǎng)上商城項目第23戰(zhàn)之在線支付功能實現(xiàn)
- SSH框架網(wǎng)上商城項目第20戰(zhàn)之在線支付平臺
- java網(wǎng)上商城項目第1篇之用戶注冊模塊
相關(guān)文章
RabbitMQ 的消息持久化與 Spring AMQP 的實現(xiàn)詳解
這篇文章主要介紹了RabbitMQ 的消息持久化與 Spring AMQP 的實現(xiàn)剖析詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
使用java swing實現(xiàn)qq登錄界面示例分享
這篇文章主要介紹了使用java swing實現(xiàn)qq登錄界面示例,需要的朋友可以參考下2014-04-04
Java應(yīng)用服務(wù)器之tomcat部署的詳細教程
這篇文章主要介紹了Java應(yīng)用服務(wù)器之tomcat部署,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
java使用xfire搭建webservice服務(wù)的過程詳解
這篇文章主要介紹了java使用xfire搭建webservice服務(wù)的過程。使用xfire搭建webService的服務(wù),可以在瀏覽器訪問。對此感興趣的可以了解一下2020-07-07

