銀聯在線支付---利用測試案例代碼模擬支付應用


 一、工程搭建

          新建一個Web工程,命名為PayOnLine,把你下載好的案例代碼拷貝到你的工程下,我的代碼目錄如下:
             


acp_sdk.properties配置文件需要放在類根路勁下,里面的參數配置信息,下面是案例提供的配置提示:
[java] view plain copy
  1. 0. 注意:  
  2. 1)依賴包和upacp_sdk-1.0.0.jar都需加到buildpath。  
  3. 2)acp_sdk.properties放到src根目錄下。另外如果用的不是eclipse/MyEclipse可能這個文件默認不會被拷貝到classes目錄下,導致加載不到這個文件,請注意修改設置或手工拷貝這個文件。  
  4.   
  5. 1. 修改acp_sdk.properties,  
  6. 1) 證書改下自己本地路徑,證書密碼測試環境就是000000,生產自己修改。  
  7.   
  8. 2.1 wap/網關的消費:調用Form_6_2_FrontConsume,商戶號請改為自己的商戶號,會生成一段html,把它打印到瀏覽器即可跳轉支付頁面。比如可以寫一個servlet直接打印頁面,或者把html復制到一個記事本里后綴改html再瀏覽器打開。  
  9.   
  10. 2.2 控件的消費:調用Form_6_2_AppConsume,商戶號請改為自己的商戶號,會訪問后台獲取tn,把tn傳給你們手機app。  
  11.   
  12. 支付卡:  
  13. 平安銀行借記卡:6216261000000000018  
  14. 證件號:341126197709218366  
  15. 手機號:13552535506  
  16. 密碼:123456  
  17. 姓名:全渠道  
  18. 短信驗證碼:123456(wap/控件)111111(PC)  
  19. (短信驗證碼記得點下獲取驗證碼之后再輸入)  
  20.   
  21. 3. Form_6_5_Query為查詢接口,商戶號請改為自己的商戶號,注意修改txnTime和orderId為被查詢交易的txnTime和orderId。  
  22.   
  23. 4. Form_6_3_ConsumeUndo和Form_6_4_Refund分別為消費撤銷接口、退貨接口,商戶號請改為自己的商戶號,注意修改origQryId為自己需要退款的那筆消費的queryId。  
  24.   
  25. 5. FrontRcvResponse和BackRcvResponse為前后台通知接口,為2個Servlet,請注意配置web.xml,另外FrontRcvResponse會使用“其他文件/utf8_result.jsp”。交易完成會調用通知接口。  
  26.   
  27. 6. Form_6_6_FileTransfer為文件下載接口。  
  28. 文件下載接口注意點:  
  29. 1) 請使用自己的【真實商戶號】測試。開發包的商戶號、自助化測試平台申請的商戶號都是不能測試文件下載的,會反http狀態500,內容為空。如果真實商戶號下載提示無文件但確定有交易,一般是商戶號沒有文件傳輸類交易的權限,如需要開通請聯系業務運營中心operation@unionpay.com。  
  30. 2) 請先建立好文件夾並確保有文件寫入權限。  
  31.   
  32. 7. 如需使用gbk編碼,請自行修改代碼內寫的編碼和代碼文件本身的編碼為gbk。  
  33.   
  34. 8. 關於配置文件加載問題:  
  35. SDKConfig.getConfig().loadPropertiesFromSrc()這句話在整個工程啟用的時候執行一次即可,其余地方都可刪除。  
  36. 比如可以建立個servlet,初始化時調用,web.xml中設置成啟動時就加載這個servlet:  
  37.   
  38. InitServlet.java:  
  39. public class InitServlet extends HttpServlet{  
  40.     @Override  
  41.     public void init() throws ServletException {  
  42.         SDKConfig.getConfig().loadPropertiesFromSrc();// 從classpath加載acp_sdk.properties文件  
  43.         super.init();  
  44.     }  
  45. }  
  46.   
  47. web.xml:  
  48.   <servlet>  
  49.     <servlet-name>InitServlet</servlet-name>  
  50.     <servlet-class>com.unionpay.acp.demo.InitServlet</servlet-class>  
  51.     <load-on-startup>0</load-on-startup>  
  52.   </servlet>  
  53.   
  54.   
  55. 9. 日志文件路徑問題:  
  56. 可rar打開upacp_sdk-1.0.0.jar,修改里面log4j.properties配置的路徑。  
  57.   
  58. 10. 切換生產時請一定看下https://open.unionpay.com/ajweb/help/faq/listByType?faqType=prod中的問題,特別是“切換生產有哪些需要改動的地方”的這個FAQ。  

到此工程搭建完畢.

Form_6_2_FrontConsume.java 就是對應的網關支付案例代碼,改動如下三行代碼就可以用了。




直接運行,可以看到控制台最后一行,打印出了HTML代碼,把它復制出來,放在一個空的html文件里. 
[html] view plain copy
  1. <html>  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  4. </head>  
  5. <body>  
  6.     <form id="pay_form"  
  7.         action="https://101.231.204.80:5000/gateway/api/frontTransReq.do"  
  8.         method="post">  
  9.         <input type="hidden" name="txnType" id="txnType" value="01" /><input  
  10.             type="hidden" name="frontUrl" id="frontUrl"  
  11.             value="http://localhost:8080/PayOnLine/acp_front_url.do" /><input  
  12.             type="hidden" name="currencyCode" id="currencyCode" value="156" /><input  
  13.             type="hidden" name="channelType" id="channelType" value="08" /><input  
  14.             type="hidden" name="merId" id="merId" value="777290058112538" /><input  
  15.             type="hidden" name="txnSubType" id="txnSubType" value="01" /><input  
  16.             type="hidden" name="txnAmt" id="txnAmt" value="1" /><input  
  17.             type="hidden" name="version" id="version" value="5.0.0" /><input  
  18.             type="hidden" name="signMethod" id="signMethod" value="01" /><input  
  19.             type="hidden" name="backUrl" id="backUrl"  
  20.             value="http://localhost:8080/PayOnLine/acp_back_url.do" /><input  
  21.             type="hidden" name="certId" id="certId"  
  22.             value="124876885185794726986301355951670452718" /><input  
  23.             type="hidden" name="encoding" id="encoding" value="UTF-8" /><input  
  24.             type="hidden" name="bizType" id="bizType" value="000201" /><input  
  25.             type="hidden" name="signature" id="signature"  
  26.             value="qlFuEQS9ADJ0iN+DkG4z09hbAG7a7MqwZPkbQvzDcURxE9ob4N/9/wTq11iQedygOCZkSFIU49dy41pe1pVN09vDOq3uS3TTmeQh3vchh1VmvcIBV+pWeBeq4FGhkY5TudqU/r52W9Sw8syc5YjU14UvRoPUOvfZLGND23JhGsY=" /><input  
  27.             type="hidden" name="orderId" id="orderId" value="20150422172935" /><input  
  28.             type="hidden" name="accessType" id="accessType" value="0" /><input  
  29.             type="hidden" name="txnTime" id="txnTime" value="20150422172935" />  
  30.     </form>  
  31. </body>  
  32. <script type="text/javascript">  
  33.     document.all.pay_form.submit();  
  34. </script>  
  35. </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分鍾生效。



操作步驟如下:


點擊開始測試即可。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM