java支付介面開發

來源:互聯網
上載者:User
商務程序步驟:

1、產生訂單資訊
2、商戶到銀行,商戶發起請求到銀行

把訂單資訊的部分資料拼接,然後通過銀行端給的MD5加密工具加密,然後作為參數,通過http的post請求 發送到支付提供的目標銀行網站。例子:

var bankURL = "b2bpay.ccb.com/NCCB/NECV5B2BPayMainPlat"; // 生產環境的銀行請求地址tmp = 'MERCHANTID=' + MERCHANTID + '&POSID=' + POSID + '&BRANCHID='+ BRANCHID + '&ORDERID=' + ORDERID + '&PAYMENT=' + PAYMENT+ '&CURCODE=' + CURCODE + '&TXCODE=' + TXCODE + '&REMARK1='+ REMARK1 + '&REMARK2=' + REMARK2 + '&PROJECTNO =' + PROJECTNO+ '&PAYACCNO=' + PAYACCNO + '&ACCTYPE=' + ACCTYPE + '&ENDTIME ='+ ENDTIME + '& TYPE =' + TYPE'& PUB =' + PUB + '& REGINFO =' + REGINFO + '& PROINFO =' + PROINFO+ '& REFERER =' + REFERER; // 加密原串strMD5 = hex_md5(tmp); // 調用加密函數產生MAC值對應的加密串subfor.action = bankURL + '?' + tmp + '&MAC=' + strMD5;var params = tmp + '&MAC=' + strMD5;subform.submit();


3、介面跳轉到支付頁面,客戶在頁面支付成功,銀行進行業務處理   

4、銀行到商戶,銀行調用商戶介面返回處理結果,商戶接收後驗證數位簽章,更改單據狀態
  1)銀行通過MD5withRSA演算法對返回結果進行加密產生數位簽章
  2)商戶要預先提供介面給銀行回調,這個介面一般是在商戶到銀行步驟裡面,我們通過參數傳遞給銀行
  3)商戶介面處理過程: (1)      擷取銀行傳過來的資料; (2)      使用公開金鑰進行簽名的逆運算 (3)     使用標準MD5演算法運算原文 (4)      比較(2) 、(3) 結果,如果一樣,驗證簽名成功,更改單據狀態,否則,返回支付失敗等提示資訊

/* * 此例子是post方式 *//*銀行提供的公開金鑰*/String strPubKey = "30819d300d06092a864886f70d010101050003818b00308187028181009d2ac18031a5966ae6bf4ea0c317144d4944beda90ef828298a4b30a4c31a57a8ff921e8b05c6b6b9ae5ef7a984359b6ff46ad5c31fdc8ef24d541defa0d65ecd5aedea19f803742d3526399d9c7cfb795a8edcabb0b9eff58f384074f163f9f646cfc3c6b0730c900ec1acac7b6dc24f949697dbd0f9a0658b5640c37378787020111";/*從上一表單提取出來要素的值*/String strSrc="100000037200905090001_sadCQ450533779#0E50001004141059866666重慶市工程建設招標投標交易中心.012N20120904184827上海市http://localhost:8080/WebContent/my_pay.htm";RSASig rsa = new RSASig();/*驗簽串*/String signString = "25ee808325b6e950c29d1fd50e05fc44f4dc9cad7aa0ef430977a4d73f1604196a2adeeb3130f471e2b480e03fedc34a33e874b58cb0c36337ee4090f58a923b03c8f5f4d936b35e46b53c20eedd0116371f8daa1136d7afd12ec2f7cf23af140398ce91d75822297304da6e2db65597a696788b1457fcea2b027ebe6e61eeef";rsa.generateSigature(strSrc);rsa.setPublicKey(strPubKey);/*驗簽結果判斷*/if (rsa.verifySigature(signString, strSrc)) {System.out.println("驗簽成功。。");} else {System.out.println("驗簽失敗。。");}



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.