android 集成支付寶支付的心路歷程

項目需要,需要在客戶端集成支付寶接口。就研究了一下:因爲使用支付寶接口,就需要到支付寶官網:註冊帳號,並申請。下面講的是申請好之後的操作。登錄成功之後,   店家我的商家服務—在頁面的下方找到——>簽約管理—>找打 移動支付—–>點擊下載集成文檔—>跳到新的頁面,在頁面下方—>找到下載開發包,下載移動支付即可。然後解壓出來之後一般會得到三個文件夾。

這個時候要打開文件名爲:  支付寶錢包支付接口開發包2.0標準版的文件。打開之後有一個Demo 文件。打開Demo文件。裏面會有三個文件夾:第一個 openssl; 第二個 服務端 Demo,第三個 客戶端demo. 這個時候,我們需要關心的是  openssl 文件與 客戶端Demo 的文件。

在第三個Demo文件中有IOS版與Android 版的Demo.但是你要部署運行的時候,會發現不能運行成功。在項目主文件裏面這樣一段代碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//商戶PID
 
public static final String PARTNER = "";
 
//商戶收款賬號
 
public static final String SELLER = "";
 
//商戶私鑰,pkcs8格式
 
public static final String RSA_PRIVATE = "";
 
//支付寶公鑰
 
public static final String RSA_PUBLIC = "";

因爲這些,都是需要根據商戶註冊的信息來填寫的。所以就算下下載了Demo,也沒有用。下面講的就是如何獲取私鑰與支付寶公鑰。

還記得剛剛我們加壓之後的openssl文件嘛?獲取私鑰與公鑰的方法就在裏面:

首先打開openssl文件:以下是文件打開順序: openssl–>bin –> 雙擊 openssl.exe文件。這個時候會出現一個命令框:(首先要說明的是這個文件是在Windows系統下打開的)要是蘋果系統好像不行.接着繼續往下說:

打開命令框後:輸入第一行命令 ,生成私鑰,如下:

1
      genrsa -out rsa_private_key.pem 1024

按回車鍵,接着輸入第二行命令,生成公鑰:

1
     rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

按回車鍵,接着輸入第三行命令,將RSA私鑰轉換成PKCS8格式

1
2
3
     pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
 
  

 

執行完這三行命令後,就生成了兩個以:.pem 結尾的文件。這就是我們生成的公鑰與私鑰.文件位置就在: bin  目錄下。當然我們打不開這兩個文件。但是我們可以複製一份到桌面,改成Txt文件打開即可。因爲我們需要的只是裏面的字符串,記住當我們引用這兩個長的字符串的時候,需要注意的是:字符串,不能包括,換行,空格,以及其他誤加的字符。所以複製的時候一定要小心。

當然私鑰就是我們需要的私鑰了,如何獲得支付寶公鑰呢:回到支付寶首先,首先登錄,

一:  點擊“查看PID|KEY”,在新打開的頁面(https://b.alipay.com/order/pidAndKey.htm ),可查看到簽約支付寶賬號、合作者身份ID(PID.

二:輸入支付密碼,查詢key、支付寶公鑰。

三:上傳RSA公鑰,在“合作伙伴密鑰管理”下,點擊“RSA加密”後的“添加密鑰”,把自己的公鑰複製進去。注意不能有空格,換

行之類的。

zhifub

 

 

 

四:點擊確認上傳,若是提示上傳成功。則就是成功。

這個時候就可查看支付寶公鑰了。如圖:

zhifua

至此,將對應的私鑰與公鑰填到相應位置我們的Demo  就可一運行了。然後集成到項目中即可。就需要自己動手了。遇到問題,百度一下。希望給你帶來用處。

轉發自:http://blog.it985.com/12276.html

按照大神的步驟走了,最後把私鑰和支付寶公鑰複製進來,運行沒想到卻報了個空指針的錯誤.

public static final String PARTNER=“”;

public static final String SELLER =“”;

public static final String RSA_PRIVATE =“'";

三個值寫好。第一個值是商戶id,地址https://b.alipay.com/order/pidAndKey.htm去找。

第二個是商戶賬號,說明一下,第一個和第二個必須一致,否則無法調用,會報系統繁忙,請稍後再試,

第三個是你自己生成的私鑰。有這三個參數就可以調用支付寶支付了。

還有一個比較坑爹的地方

在SignUtils類裏將KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);這句換成 KeyFactory keyf = KeyFactory.getInstance(ALGORITHM,"BC");

經過,這些差不多官方的demo也就能跑起來了

還有

上傳rsa公鑰的時候,一定要細心和耐心

上傳rsa公鑰的時候,一定要細心和耐心

上傳rsa公鑰的時候,一定要細心和耐心

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章