資源簡介
銀聯在線支付的測試案例代碼

代碼片段和文件信息
package?com.unionpay.acp.demo;
import?java.io.IOException;
import?java.util.Enumeration;
import?java.util.HashMap;
import?java.util.Iterator;
import?java.util.Map;
import?java.util.Map.Entry;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?com.unionpay.acp.sdk.LogUtil;
import?com.unionpay.acp.sdk.SDKConfig;
import?com.unionpay.acp.sdk.SDKConstants;
import?com.unionpay.acp.sdk.SDKUtil;
/**
?*?名稱:商戶后臺通知類
?*?功能:?
?*?類屬性:
?*?方法調用?版本:5.0?
?*?日期:2014-07?
?*?作者:中國銀聯ACP團隊?
?*?版權:中國銀聯
?*?說明:以下代碼只是為了方便商戶測試而提供的樣例代碼,商戶可以根據自己網站的需要,按照技術文檔編寫并非一定要使用該代碼。該代碼僅供參考。
?*?*/
public?class?BackRcvResponse?extends?HttpServlet{
/**
?*?
?*/
private?static?final?long?serialVersionUID?=?3414800502432002480L;
@Override
public?void?init()?throws?ServletException?{
/**
?*?參數初始化
?*?在java?main?方式運行時必須每次都執行加載
?*?如果是在web應用開發里這個方寫在可使用監聽的方式寫入緩存無須在這出現
?*/
SDKConfig.getConfig().loadPropertiesFromSrc();//?從classpath加載acp_sdk.properties文件
super.init();
}
@Override
protected?void?doPost(HttpServletRequest?req?HttpServletResponse?resp)
throws?ServletException?IOException?{
LogUtil.writeLog(“BackRcvResponse接收后臺通知開始“);
req.setCharacterEncoding(“ISO-8859-1“);
String?encoding?=?req.getParameter(SDKConstants.param_encoding);
//?獲取請求參數中所有的信息
Map?reqParam?=?getAllRequestParam(req);
//?打印請求報文
LogUtil.printRequestLog(reqParam);
Map?valideData?=?null;
if?(null?!=?reqParam?&&?!reqParam.isEmpty())?{
Iterator>?it?=?reqParam.entrySet().iterator();
valideData?=?new?HashMap(reqParam.size());
while?(it.hasNext())?{
Entry?e?=?it.next();
String?key?=?(String)?e.getKey();
String?value?=?(String)?e.getValue();
value?=?new?String(value.getBytes(“ISO-8859-1“)?encoding);
valideData.put(key?value);
}
}
//?驗證簽名
if?(!SDKUtil.validate(valideData?encoding))?{
LogUtil.writeLog(“驗證簽名結果[失敗].“);
}?else?{
System.out.println(valideData.get(“orderId“));?//其他字段也可用類似方式獲取
LogUtil.writeLog(“驗證簽名結果[成功].“);
}
LogUtil.writeLog(“BackRcvResponse接收后臺通知結束“);
}
@Override
protected?void?doGet(HttpServletRequest?req?HttpServletResponse?resp)?throws?ServletException
IOException?{
this.doPost(req?resp);
}
/**
?*?獲取請求參數中所有的信息
?*?
?*?@param?request
?*?@return
?*/
public?static?Map?getAllRequestParam(final?HttpServletRequest?request)?{
Map?res?=?new?HashMap();
Enumeration>?temp?=?request.getParameterNames();
if?(null?!=?temp)?{
while?(temp.hasMoreElements())?{
String?en?=?(String)?temp.nextElement();
String?value?=?request.getParameter(en);
res.put(en?value);
//在報文上送時,如果字段的值為空,則不上送<下面的處理為在獲取所有參數數據時,判斷若值為空,則刪除這個字段>
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????529??2015-04-22?15:36??PayOnLine\.classpath
?????文件????????298??2015-04-22?17:14??PayOnLine\.myme
?????文件???????1752??2015-04-22?17:14??PayOnLine\.project
?????文件????????500??2015-04-22?15:36??PayOnLine\.settings\.jsdtscope
?????文件????????109??2015-04-22?17:00??PayOnLine\.settings\org.eclipse.core.resources.prefs
?????文件????????364??2015-04-22?15:36??PayOnLine\.settings\org.eclipse.jdt.core.prefs
?????文件????????463??2015-04-22?17:14??PayOnLine\.settings\org.eclipse.wst.common.component
?????文件????????252??2015-04-22?15:36??PayOnLine\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2015-04-22?15:36??PayOnLine\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2015-04-22?15:36??PayOnLine\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????2262??2015-04-22?15:36??PayOnLine\src\acp_sdk.properties
?????文件???????3808??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\BackRcvResponse.java
?????文件???????8096??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Demoba
?????文件???????3028??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_2_AppConsume.java
?????文件???????3039??2015-04-22?17:26??PayOnLine\src\com\unionpay\acp\demo\Form_6_2_FrontConsume.java
?????文件???????3038??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_3_ConsumeUndo.java
?????文件???????3175??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_4_Refund.java
?????文件???????2299??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_5_Query.java
?????文件???????2576??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_6_FileTransfer.java
?????文件???????3035??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_7_1_AuthDeal_App.java
?????文件???????3033??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_7_1_AuthDeal_Front.java
?????文件???????3040??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_7_2_AuthUndo.java
?????文件???????3046??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_7_3_AuthFinish.java
?????文件???????3064??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\Form_6_7_4_AutnFinishUndo.java
?????文件???????4432??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\FrontRcvResponse.java
?????文件???????2660??2015-04-22?15:36??PayOnLine\src\com\unionpay\acp\demo\ReadMe.txt
?????文件????????834??2015-04-22?15:36??PayOnLine\WebRoot\index.jsp
?????文件?????????36??2015-04-22?15:36??PayOnLine\WebRoot\me
?????文件???????1837??2015-04-22?17:30??PayOnLine\WebRoot\test.html
?????文件????????641??2015-04-22?15:38??PayOnLine\WebRoot\utf8_result.jsp
............此處省略44個文件信息
- 上一篇:4*4有符號數的乘法器設計的Hspice實現
- 下一篇:全國各省邊界矢量數據
評論
共有 條評論