資源簡(jiǎn)介
銀聯(lián)在線支付的測(cè)試案例代碼

代碼片段和文件信息
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;
/**
?*?名稱:商戶后臺(tái)通知類(lèi)
?*?功能:?
?*?類(lèi)屬性:
?*?方法調(diào)用?版本:5.0?
?*?日期:2014-07?
?*?作者:中國(guó)銀聯(lián)ACP團(tuán)隊(duì)?
?*?版權(quán):中國(guó)銀聯(lián)
?*?說(shuō)明:以下代碼只是為了方便商戶測(cè)試而提供的樣例代碼,商戶可以根據(jù)自己網(wǎng)站的需要,按照技術(shù)文檔編寫(xiě)并非一定要使用該代碼。該代碼僅供參考。
?*?*/
public?class?BackRcvResponse?extends?HttpServlet{
/**
?*?
?*/
private?static?final?long?serialVersionUID?=?3414800502432002480L;
@Override
public?void?init()?throws?ServletException?{
/**
?*?參數(shù)初始化
?*?在java?main?方式運(yùn)行時(shí)必須每次都執(zhí)行加載
?*?如果是在web應(yīng)用開(kāi)發(fā)里這個(gè)方寫(xiě)在可使用監(jiān)聽(tīng)的方式寫(xiě)入緩存無(wú)須在這出現(xiàn)
?*/
SDKConfig.getConfig().loadPropertiesFromSrc();//?從classpath加載acp_sdk.properties文件
super.init();
}
@Override
protected?void?doPost(HttpServletRequest?req?HttpServletResponse?resp)
throws?ServletException?IOException?{
LogUtil.writeLog(“BackRcvResponse接收后臺(tái)通知開(kāi)始“);
req.setCharacterEncoding(“ISO-8859-1“);
String?encoding?=?req.getParameter(SDKConstants.param_encoding);
//?獲取請(qǐng)求參數(shù)中所有的信息
Map?reqParam?=?getAllRequestParam(req);
//?打印請(qǐng)求報(bào)文
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);
}
}
//?驗(yàn)證簽名
if?(!SDKUtil.validate(valideData?encoding))?{
LogUtil.writeLog(“驗(yàn)證簽名結(jié)果[失敗].“);
}?else?{
System.out.println(valideData.get(“orderId“));?//其他字段也可用類(lèi)似方式獲取
LogUtil.writeLog(“驗(yàn)證簽名結(jié)果[成功].“);
}
LogUtil.writeLog(“BackRcvResponse接收后臺(tái)通知結(jié)束“);
}
@Override
protected?void?doGet(HttpServletRequest?req?HttpServletResponse?resp)?throws?ServletException
IOException?{
this.doPost(req?resp);
}
/**
?*?獲取請(qǐng)求參數(shù)中所有的信息
?*?
?*?@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);
//在報(bào)文上送時(shí),如果字段的值為空,則不上送<下面的處理為在獲取所有參數(shù)數(shù)據(jù)時(shí),判斷若值為空,則刪除這個(gè)字段>
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論