今天準備給app接入支付寶,大致過了一下文檔,準備先把官方的Demo先跑起來,結果后臺提示下面這個錯誤:
rsa_private read error : private key is NULL
檢查一下代碼,有三個變量需要開發者來配置:
/*=======================需要填寫商戶app申請的===================================*/
NSString *partner = @"";
NSString *seller = @"";
NSString *privateKey = @"";
這三個參數對應的含義如下:
參數 | 含義 |
---|---|
partner | 合作身份者ID,以2088開頭由16位純數字組成的字符串。請參考查看PID。 |
seller Cell | 支付寶收款賬號,手機號碼或郵箱格式。 |
private_key | 商戶方的私鑰,pkcs8格式。請參考RSA私鑰及公鑰生成。 |
前面兩個參數都比較好理解。至于第三個參數private_key,獲得它的方法如下:
蘋果系統自帶openssl工具,無需安裝。
打開終端(Termal)輸入如下命令:
1.openssl 進入OpenSSL程序
2.OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私鑰
3.OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt 開發者需要將私鑰轉換成PKCS8格式
4.OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 生成公鑰
5.OpenSSL> exit ## 退出OpenSSL程序
在第三步的時候就獲得了私鑰(需要pkcs8格式)。第四步生成了對應的公鑰,我們需要將公鑰上傳到支付寶,上傳的方法:點擊這里。
好了,現在把三個參數都填寫完整,運行一下,點擊支付,就會跳轉到支付寶了。
跳轉
如果發現支付后沒有跳轉回你自己的app,那么檢查一下plist文件中跳轉協議是否有配置:
跳轉協議配置.png
未完,待續~