怎麼讓自己的java系統使用支付介面

來源:互聯網
上載者:User

標籤:

  昨天花了好久的時間學習了支付介面的教,我看了前7集,就夠用了,大家上網搜尋一下傳智播客線上支付還不錯。

 1.一開始有一個form表單

 2.這個表單是他幫你寫好的,有很多銀行,銀行的name都是特定的

 3.這個表單要提交,教程中使用的是servlet,我使用的是struts2,原理其實也差不多,就是跳轉之後要處理事務,servlet處理的功能跟struts中的dao+action是差不多的

 4.提交之後,要定義一些屬性,有一些屬性如果你的表單是有上傳上來的,那就使用一些手段去擷取,如果沒有賦值的你就要自己給他賦值。

 5.他有一個加密類,你在給一個屬性賦值的時候是要用到的。這個屬性叫做md5hmac、

 6.之後這些屬性都傳到另外一個表單,這個表單是要跳轉到支付介面的,這個表單是不用給使用者看到的(我用的方法就是用js語言設定這個表單自動認可)

 7.最後就會跳轉到這個支付頁面的

備忘:

1.這個需要有兩個屬性,如的前兩個,是需要這個企業提供給你,我的這個到期了,我用時候跳轉到頁面,但是用不了

2.加密類

  1  /**  2   * @param aValue  3   * @return  4   */  5  public static String digest(String aValue) {  6   aValue = aValue.trim();  7   byte value[];  8   try {  9    value = aValue.getBytes(encodingCharset); 10   } catch (UnsupportedEncodingException e) { 11    value = aValue.getBytes(); 12   } 13   MessageDigest md = null; 14   try { 15    md = MessageDigest.getInstance("SHA"); 16   } catch (NoSuchAlgorithmException e) { 17    e.printStackTrace(); 18    return null; 19   } 20   return toHex(md.digest(value)); 21  22  } 23   24 // public static void main(String[] args) { 25 //  System.out.println(hmacSign("AnnulCard1000043252120080620160450.0http://localhost/SZXpro/callback.asp這 26  27 4564868265473632445648682654736324511","8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irH216036H27Eb12792t")); 28 // } 29 } 30 ---------------------- 31 b./payment/src/com/credream/utils/PanymentUtil.java 32  package com.credream.utils; 33  34 public class PanymentUtil { 35  /** 36   * 產生hmac方法 37   * 38   * @param p0_Cmd 業務類型 39   * @param p1_MerId 商戶編號 40   * @param p2_Order 商戶訂單號 41   * @param p3_Amt 支付金額 42   * @param p4_Cur 交易幣種 43   * @param p5_Pid 商品名稱 44   * @param p6_Pcat 商品種類 45   * @param p7_Pdesc 商品描述 46   * @param p8_Url 商戶接收支付成功資料的地址 47   * @param p9_SAF 寄送地址 48   * @param pa_MP 商戶擴充資訊 49   * @param pd_FrpId 銀行編碼 50   * @param pr_NeedResponse 應答機制 51   * @param keyValue 商戶密鑰 52   * @return 53   */ 54  public static String buildHmac(String p0_Cmd,String p1_MerId, 55    String p2_Order, String p3_Amt, String p4_Cur,String p5_Pid, String p6_Pcat, 56    String p7_Pdesc,String p8_Url, String p9_SAF,String pa_MP,String pd_FrpId, 57    String pr_NeedResponse,String keyValue) { 58   StringBuffer sValue = new StringBuffer(); 59   // 業務類型 60   sValue.append(p0_Cmd); 61   // 商戶編號 62   sValue.append(p1_MerId); 63   // 商戶訂單號 64   sValue.append(p2_Order); 65   // 支付金額 66   sValue.append(p3_Amt); 67   // 交易幣種 68   sValue.append(p4_Cur); 69   // 商品名稱 70   sValue.append(p5_Pid); 71   // 商品種類 72   sValue.append(p6_Pcat); 73   // 商品描述 74   sValue.append(p7_Pdesc); 75   // 商戶接收支付成功資料的地址 76   sValue.append(p8_Url); 77   // 寄送地址 78   sValue.append(p9_SAF); 79   // 商戶擴充資訊 80   sValue.append(pa_MP); 81   // 銀行編碼 82   sValue.append(pd_FrpId); 83   // 應答機制 84   sValue.append(pr_NeedResponse); 85    86   String sNewString = DigestUtil.hmacSign(sValue.toString(), keyValue); 87   return sNewString; 88  } 89   90  /** 91   * 返回校正hmac方法 92   * 93   * @param hmac 支付網關發來的加密驗證碼 94   * @param p1_MerId 商戶編號 95   * @param r0_Cmd 業務類型 96   * @param r1_Code 支付結果 97   * @param r2_TrxId 易寶支付交易流水號 98   * @param r3_Amt 支付金額 99   * @param r4_Cur 交易幣種100   * @param r5_Pid 商品名稱101   * @param r6_Order 商戶訂單號102   * @param r7_Uid 易寶支付會員ID103   * @param r8_MP 商戶擴充資訊104   * @param r9_BType 交易結果傳回型別105   * @param keyValue 密鑰106   * @return107   */108  public static boolean verifyCallback(String hmac, String p1_MerId,109    String r0_Cmd, String r1_Code, String r2_TrxId, String r3_Amt,110    String r4_Cur, String r5_Pid, String r6_Order, String r7_Uid,111    String r8_MP, String r9_BType, String keyValue) {112   StringBuffer sValue = new StringBuffer();113   // 商戶編號114   sValue.append(p1_MerId);115   // 業務類型116   sValue.append(r0_Cmd);117   // 支付結果118   sValue.append(r1_Code);119   // 易寶支付交易流水號120   sValue.append(r2_TrxId);121   // 支付金額122   sValue.append(r3_Amt);123   // 交易幣種124   sValue.append(r4_Cur);125   // 商品名稱126   sValue.append(r5_Pid);127   // 商戶訂單號128   sValue.append(r6_Order);129   // 易寶支付會員ID130   sValue.append(r7_Uid);131   // 商戶擴充資訊132   sValue.append(r8_MP);133   // 交易結果傳回型別134   sValue.append(r9_BType);135   String sNewString = DigestUtil.hmacSign(sValue.toString(), keyValue);136 137   if (hmac.equals(sNewString)) {138    return true;139   }140   return false;141  }142 }

3.記得你調試的時候要用企業給的測試環境下的支付網址

4.一些我看視頻的,你嘗試看看

 

 

怎麼讓自己的java系統使用支付介面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.