银联在线支付---利用测试案例代码模拟支付应用(修改)
生活随笔
收集整理的這篇文章主要介紹了
银联在线支付---利用测试案例代码模拟支付应用(修改)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?一、工程搭建
新建一個Web工程,命名為PayOnLine,把你下載好的案例代碼拷貝到你的工程下,我的代碼目錄如下:acp_sdk.properties配置文件需要放在類根路勁下,里面的參數配置信息,下面是案例提供的配置提示: 0. 注意: 1)依賴包和upacp_sdk-1.0.0.jar都需加到buildpath。 2)acp_sdk.properties放到src根目錄下。另外如果用的不是eclipse/MyEclipse可能這個文件默認不會被拷貝到classes目錄下,導致加載不到這個文件,請注意修改設置或手工拷貝這個文件。1. 修改acp_sdk.properties, 1) 證書改下自己本地路徑,證書密碼測試環境就是000000,生產自己修改。2.1 wap/網關的消費:調用Form_6_2_FrontConsume,商戶號請改為自己的商戶號,會生成一段html,把它打印到瀏覽器即可跳轉支付頁面。比如可以寫一個servlet直接打印頁面,或者把html復制到一個記事本里后綴改html再瀏覽器打開。2.2 控件的消費:調用Form_6_2_AppConsume,商戶號請改為自己的商戶號,會訪問后臺獲取tn,把tn傳給你們手機app。支付卡: 平安銀行借記卡:6216261000000000018 證件號:341126197709218366 手機號:13552535506 密碼:123456 姓名:全渠道 短信驗證碼:123456(wap/控件)111111(PC) (短信驗證碼記得點下獲取驗證碼之后再輸入)3. Form_6_5_Query為查詢接口,商戶號請改為自己的商戶號,注意修改txnTime和orderId為被查詢交易的txnTime和orderId。4. Form_6_3_ConsumeUndo和Form_6_4_Refund分別為消費撤銷接口、退貨接口,商戶號請改為自己的商戶號,注意修改origQryId為自己需要退款的那筆消費的queryId。5. FrontRcvResponse和BackRcvResponse為前后臺通知接口,為2個Servlet,請注意配置web.xml,另外FrontRcvResponse會使用“其他文件/utf8_result.jsp”。交易完成會調用通知接口。6. Form_6_6_FileTransfer為文件下載接口。 文件下載接口注意點: 1) 請使用自己的【真實商戶號】測試。開發包的商戶號、自助化測試平臺申請的商戶號都是不能測試文件下載的,會反http狀態500,內容為空。如果真實商戶號下載提示無文件但確定有交易,一般是商戶號沒有文件傳輸類交易的權限,如需要開通請聯系業務運營中心operation@unionpay.com。 2) 請先建立好文件夾并確保有文件寫入權限。7. 如需使用gbk編碼,請自行修改代碼內寫的編碼和代碼文件本身的編碼為gbk。8. 關于配置文件加載問題: SDKConfig.getConfig().loadPropertiesFromSrc()這句話在整個工程啟用的時候執行一次即可,其余地方都可刪除。 比如可以建立個servlet,初始化時調用,web.xml中設置成啟動時就加載這個servlet:InitServlet.java: public class InitServlet extends HttpServlet{@Overridepublic void init() throws ServletException {SDKConfig.getConfig().loadPropertiesFromSrc();// 從classpath加載acp_sdk.properties文件super.init();} }web.xml:<servlet><servlet-name>InitServlet</servlet-name><servlet-class>com.unionpay.acp.demo.InitServlet</servlet-class><load-on-startup>0</load-on-startup></servlet>9. 日志文件路徑問題: 可rar打開upacp_sdk-1.0.0.jar,修改里面log4j.properties配置的路徑。10. 切換生產時請一定看下https://open.unionpay.com/ajweb/help/faq/listByType?faqType=prod中的問題,特別是“切換生產有哪些需要改動的地方”的這個FAQ。
到此工程搭建完畢.
Form_6_2_FrontConsume.java 就是對應的網關支付案例代碼,改動如下三行代碼就可以用了。
直接運行,可以看到控制臺最后一行,打印出了HTML代碼,把它復制出來,放在一個空的html文件里.? <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body><form id="pay_form"action="https://101.231.204.80:5000/gateway/api/frontTransReq.do"method="post"><input type="hidden" name="txnType" id="txnType" value="01" /><inputtype="hidden" name="frontUrl" id="frontUrl"value="http://localhost:8080/PayOnLine/acp_front_url.do" /><inputtype="hidden" name="currencyCode" id="currencyCode" value="156" /><inputtype="hidden" name="channelType" id="channelType" value="08" /><inputtype="hidden" name="merId" id="merId" value="777290058112538" /><inputtype="hidden" name="txnSubType" id="txnSubType" value="01" /><inputtype="hidden" name="txnAmt" id="txnAmt" value="1" /><inputtype="hidden" name="version" id="version" value="5.0.0" /><inputtype="hidden" name="signMethod" id="signMethod" value="01" /><inputtype="hidden" name="backUrl" id="backUrl"value="http://localhost:8080/PayOnLine/acp_back_url.do" /><inputtype="hidden" name="certId" id="certId"value="124876885185794726986301355951670452718" /><inputtype="hidden" name="encoding" id="encoding" value="UTF-8" /><inputtype="hidden" name="bizType" id="bizType" value="000201" /><inputtype="hidden" name="signature" id="signature"value="qlFuEQS9ADJ0iN+DkG4z09hbAG7a7MqwZPkbQvzDcURxE9ob4N/9/wTq11iQedygOCZkSFIU49dy41pe1pVN09vDOq3uS3TTmeQh3vchh1VmvcIBV+pWeBeq4FGhkY5TudqU/r52W9Sw8syc5YjU14UvRoPUOvfZLGND23JhGsY=" /><inputtype="hidden" name="orderId" id="orderId" value="20150422172935" /><inputtype="hidden" name="accessType" id="accessType" value="0" /><inputtype="hidden" name="txnTime" id="txnTime" value="20150422172935" /></form> </body> <script type="text/javascript">document.all.pay_form.submit(); </script> </html>
在IE瀏覽器里,運行后就可以看見:
輸入上一篇說的測試卡號,點擊下一步:
輸入測試的參數信息,就可以完成0.01元的支付了,感覺怎么樣,就是這么簡單。
為了方便,我提供下網關支付的案例代碼鏈接,供大家下載。 案例代碼
測試遇到的問題
1.運行JAVA代碼控制臺報錯,請確認你的測試證書是否配置好了. #########################簽名證書配置 ######################################(以下配置為測試環境:入網測試環境用,生產環境配置見下述文檔說明))#######
##簽名證書路徑
acpsdk.signCert.path=D\:\\certs\\PM_700000000000001_acp.pfx
##簽名證書密碼
acpsdk.signCert.pwd=000000
##簽名證書類型
acpsdk.signCert.type=PKCS12
上面配置的路徑里必須要有對應的證書文件。證書可以在官網上的案例代碼里下載.
2. JAVA運行后得到的HTML瀏覽器打開后提示如下錯誤:
經查官網上的應答碼說如下: 應答碼列表
【所屬系統:】 全渠道
【應答碼:】 5131008
應答碼描述:無此交易權限
解決方案 :
wap和網關支付的時候會報這個錯誤,為沒開權限。如使用的是真實商戶號,請聯系簽約的業務或者業務運營中心申請開放權限。 如果用的是自助化平臺的商戶號,需要選一下要測試這個產品,方法為:右上角-我的產品-未測試,在跳轉網關支付/手機網頁支付點開始測試,點擊后10分鐘生效。
操作步驟如下:
點擊開始測試即可。
轉載于:https://www.cnblogs.com/wuyida/p/6300324.html
總結
以上是生活随笔為你收集整理的银联在线支付---利用测试案例代码模拟支付应用(修改)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: erlang开发环境配置
- 下一篇: django 的请求处理部分----WS