? ? ? ?項(xiàng)目中再次用到支付寶,去年有集成一次,order的信息是后臺(tái)返回,而且是去年的SDK,比較順利。今年再次集成,遇到了一點(diǎn)坑,一步一步解決了,故記錄一下。
1.集成問(wèn)題。
集成的時(shí)候 有很多坑。先看下你的賬戶簽約的是哪個(gè)版本。然后下下來(lái)支付寶的demo。拉入SDK,編譯一下。
報(bào)錯(cuò)提示:openssl/asn1.h file not found
解決方法:openssl路徑不對(duì)。在header search path 添加當(dāng)前的路徑, 注意,支付寶的文檔上寫(xiě)的是“對(duì)“Header Search Paths”增加頭文件路徑:$(SRCROOT)/項(xiàng)目名稱”? 但其實(shí)一般都不會(huì)放在項(xiàng)目的最外面,中間還是隔著很多文件夾,所以建議直接點(diǎn)開(kāi)本地文件夾所在地址長(zhǎng)按拖入header search path,這樣路徑就不會(huì)有問(wèn)題了。
?錯(cuò)誤信息:"_EVP_DecodeBlock", referenced from:_dataFromBase64String in openssl_wrapper.o等 ?
?這種報(bào)錯(cuò),這個(gè)的原因 就是少拖入了 libcrypto.a ?和 libssl.a兩個(gè)文件,在支付寶的DEMO下 就可以找到,拖入就行。
2.privateKey的問(wèn)題。
報(bào)錯(cuò)提示:app支付報(bào)錯(cuò)ALI40247。
? ? ? 解決方法:首先是看下后端是什么語(yǔ)言寫(xiě)的,我這邊的是JAVA,key必須用pkcs8格式的,有些可能需要RSA格式的。之前報(bào)錯(cuò)的時(shí)候,網(wǎng)上有看到修改? openssl_wrapper這個(gè)類中的 @“-----BEGIN PRIVATE KEY-----\n”@“\n-----END PRIVATE KEY-----”這兩個(gè)位置,修改成為@“-----BEGIN RSA PRIVATE KEY-----\n”,如果有這個(gè)問(wèn)題可以試試,我這邊沒(méi)有用到。
3.已經(jīng)可以支付,點(diǎn)了確定支付以后提示:暫時(shí)無(wú)法獲取到訂單信息 請(qǐng)稍后重試。
? ? 出現(xiàn)這個(gè)的原因就是你的賬戶沒(méi)有簽約你集成的版本的SDK,我這邊是賬號(hào)簽約的SDK1.X但是項(xiàng)目里面的SDK是2.X的版本。2.X可以直接在官網(wǎng)找到,附上1.X的鏈接https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1
一直聽(tīng)說(shuō)支付寶的第三方支付SDK比較多坑,這次終于遇到了。過(guò)程中試了很多,比如更換公鑰秘鑰等等。所以記錄下來(lái),希望以后自己再遇到能解決,也希望能幫助到遇到相同問(wèn)題的同學(xué)。然后馬上要集成微信了。希望微信不會(huì)遇到這么多的坑。如果有問(wèn)題 也會(huì)記錄下來(lái),方便遇到的小伙伴解決問(wèn)題。