1,支付寶申請(qǐng):https://b.alipay.com/order/productDetail.htm?productId=2013080604609654&tabId=4#ps-tabinfo-hash?
2,開發(fā)文檔:https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1?
3,載入aplipay庫,關(guān)聯(lián)類庫
4,用申請(qǐng)到的seller(商戶支付寶號(hào)),partner(商戶PID:2088***********),private key(私鑰RSA轉(zhuǎn)碼后的一串字符)連接支付寶服務(wù)器,生成訂單,加密,簽名,設(shè)置schema,設(shè)置服務(wù)器端的回調(diào)地址
5,客戶端支付成功,由支付寶客戶端回調(diào)應(yīng)用客戶端,支付寶服務(wù)器回調(diào)系統(tǒng)后臺(tái)服務(wù)器
6,解決方法
1、報(bào)錯(cuò):rsa_private read error : private key is NULL
原因:私鑰沒有轉(zhuǎn)成PKCS8
1)、在RSADataSigner.m文件中搜索代碼[result appendString:@"-----BEGIN PRIVATE KEY-----\n"];將其改成[result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];
2)、在RSADataSigner.m文件中搜索代碼[result appendString:@"\n-----END PRIVATE KEY-----"];將其改成[result appendString:@"\n-----END RSA PRIVATE KEY-----"];
7,加密解密的過程:https://cshall.alipay.com/support/help_detail.htm?help_id=397433&keyword=%25C8%25E7%25BA%25CE%25C9%25FA?,是客戶端生成的,
生成私鑰命令:genrsa -out rsa_private_key.pem 1024
轉(zhuǎn)換格式:OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
生成公鑰:OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
8,在RSA的簽名時(shí),需要私鑰和公鑰一起參與簽名。私鑰與公鑰皆是客戶通過OPENSSL來生成得出的。客戶把生成出的公鑰與支付寶技術(shù)人員配置好的支付寶公鑰做交換。因此,在簽名時(shí),客戶要用到的是客戶的私鑰及支付寶的公鑰。
9,支付寶sdk集成,報(bào)系統(tǒng)繁忙請(qǐng)稍后再試(ALI64),公私鑰不匹配,必須本機(jī)生成公鑰私鑰么
10,上傳公鑰:https://cshall.alipay.com/enterprise/help_detail.htm?help_id=473890?
11,seller,partner:簽約后,支付寶會(huì)為每個(gè)商戶分配一個(gè)唯一的parnter和seller。
12,公鑰必須給支付寶,不然他們解密不了啊,然后支付寶返回?cái)?shù)據(jù)再用支付寶的私鑰加密,然后用支付寶給的公鑰解密,o my god.
公鑰加密方法,對(duì)稱,加密解密一樣的,非對(duì)稱,非對(duì)稱就是加密和解密的不同規(guī)則,RSA代表三個(gè)賤人,
13,先與支付寶簽約,獲得商戶ID(partner)和賬號(hào)ID(seller)
(這個(gè)主要是公司的負(fù)責(zé)),下載相應(yīng)的公鑰私鑰文件(加密簽名用),私鑰文件不是下載的,2了吧,
14,由服務(wù)器來生成訂單,然后返回訂單字符串:
NSString * dataString = [responseObject valueForKeyNullReplace:@"data"];
int ret = [alixpay pay:dataString applicationScheme:appScheme];
1,支付寶企業(yè)賬戶簽約快捷支付獲得商戶id,賬戶id
2,用openssl生成公鑰,私鑰,上傳公鑰,下載另外一個(gè)公鑰
3,生成訂單信息,設(shè)置回調(diào)URL,schema,用RSA加密,發(fā)起支付
4,支付結(jié)果回調(diào)客戶端,客戶端處理,