轉(zhuǎn)IOS集成到支付寶的步驟及問題

轉(zhuǎn)IOS集成到支付寶的步驟及問題

一,在支付寶開放平臺(tái)下載支付寶SDK(https://openhome.alipay.com/platform/document.htm#down)

二,添加sdk文件到xcode

1,新建一個(gè)aliPaySDK文件夾,提取SDK包中以下文件到此文件夾里,在xcode中添加此文件夾。

2.在xcode中,點(diǎn)擊項(xiàng)目名,選擇"target"->"Link Binary With Libraries"添加依賴庫。

這個(gè)庫文件你要按照 支付寶接入文檔里邊的庫一個(gè)一個(gè)添加 ?不然會(huì)出錯(cuò)

按最新的 ? 看清楚再加 ?(下圖只是參考 ..... ?大家要注意)

3.編譯項(xiàng)目,會(huì)出現(xiàn)以下問題:

1)"Unknown type name ‘NSString‘ "或者"Unknown type name ‘NSData‘ "等不識別常見類的問題。

這是因?yàn)槿鄙貴oundation類庫和UIKit類庫,支付寶Demo中之所以沒有出現(xiàn)此錯(cuò)誤,是因?yàn)樵?pch文件中導(dǎo)入過這些類庫

解決辦法:只需要在出現(xiàn)錯(cuò)誤的文件中導(dǎo)入這些類庫即可

2)‘openssl/asn1.h‘ file not found

這是openssl文件夾頭文件鏈接問題,如果openssl文件夾隨意拉進(jìn)項(xiàng)目中,即使添加頭文件鏈接,也可能解決不了此問題,

這也是問什么一開始就將所需要的文件放到一個(gè)新建文件夾中再添加到項(xiàng)目中的原因。

解決辦法:Targets->Build Settings->Header Search Path中添加1中建立的aliPaySDK文件夾的路徑(拖拽此文件夾至輸入框即可)

3)根據(jù)項(xiàng)目需求添加demo中ViewController中的代碼 編譯后可能會(huì)出下面錯(cuò)誤:

"_OBJC_CLASS_$_Product", referencedfrom:?objc-class-ref in ViewController.o

AlipaySDK的demo中將Product的定義寫在了ViewControler.h中所致

解決辦法:新建Product類,將ViewController中的代碼拷貝過去即可。

三,添加支付邏輯代碼,完成支付過程。

ViewController.m文件

1/*============================================================================*/2/*=======================需要填寫商戶app申請的===================================*/3/*============================================================================*/4//這里的三個(gè)參數(shù)是公司和支付寶簽約之后得到的,沒有這三個(gè)參數(shù)無法完成支付5NSString*partner?=@"";6NSString*seller?=@"";7NSString*privateKey?=@"";8/*============================================================================*/9/*============================================================================*/10/*============================================================================*/1112//partner和seller獲取失敗,提示13if([partner?length]?==0||14[seller?length]?==0||15[privateKey?length]?==0)16{17UIAlertView*alert?=?[[UIAlertViewalloc]?initWithTitle:@"提示"18message:@"缺少partner或者seller或者私鑰。"19delegate:self20cancelButtonTitle:@"確定"21otherButtonTitles:nil];22[alert?show];23return;24}2526/*

27??????*生成訂單信息及簽名

28??????*/29//將商品信息賦予AlixPayOrder的成員變量30Order?*order?=?[[Order?alloc]?init];31order.partner?=?partner;32order.seller?=?seller;33#warning?這里需要填商品信息34order.tradeNO?=@"";//訂單ID(由商家自行制定)35order.productName?=@"測試商品";//商品標(biāo)題36order.productDescription?=@"這是一個(gè)測試商品";//商品描述37order.amount?=@"0.01";//商品價(jià)格38order.notifyURL?=@"";//回調(diào)URL???這個(gè)URL是在支付之后,支付寶通知后臺(tái)服務(wù)器,使數(shù)據(jù)同步更新,必須填,不然支付無法成功3940//下面的參數(shù)是固定的,不需要改變41order.service?=@"mobile.securitypay.pay";42order.paymentType?=@"1";43order.inputCharset?=@"utf-8";44order.itBPay?=@"30m";45order.showUrl?=@"m.alipay.com";4647//應(yīng)用注冊scheme,在AlixPayDemo-Info.plist定義URL?types48//如果不知道scheme是神馬東西,請自行百度49NSString*appScheme?=@"";5051//將商品信息拼接成字符串52NSString*orderSpec?=?[order?description];5354//獲取私鑰并將商戶信息簽名,外部商戶可以根據(jù)情況存放私鑰和簽名,只需要遵循RSA簽名規(guī)范,并將簽名字符串base64編碼和UrlEncode55id?signer?=?CreateRSADataSigner(privateKey);56NSString*signedString?=?[signer?signString:orderSpec];5758//將簽名成功字符串格式化為訂單字符串,請嚴(yán)格按照該格式59NSString*orderString?=nil;60if(signedString?!=nil)?{61orderString?=?[NSStringstringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",62orderSpec,?signedString,@"RSA"];636465[[AlipaySDK?defaultService]?payOrder:orderString?fromScheme:appScheme?callback:^(NSDictionary*resultDic)?{66NSLog(@"使用支付寶的支付結(jié)果?%@",resultDic);6768}];6970}

AppDelegate.m

1-?(BOOL)application:(UIApplication*)application2openURL:(NSURL*)url3sourceApplication:(NSString*)sourceApplication4annotation:(id)annotation?{56//跳轉(zhuǎn)支付寶錢包進(jìn)行支付,處理支付結(jié)果7[[AlipaySDK?defaultService]?processOrderWithPaymentResult:url?standbyCallback:^(NSDictionary*resultDic)?{8NSLog(@"result?=?%@",resultDic);9}];1011returnYES;12}

以上就是支付寶集成流程和可能遇到的問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在我們應(yīng)用開發(fā)中我們經(jīng)常在自己的項(xiàng)目中使用到支付,下面我們來談?wù)刬OS這塊的支付;iOS支付主要分為兩類,第三方支...
    Hither閱讀 8,558評論 9 42
  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購)。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    sillen閱讀 1,464評論 0 1
  • 寫得不錯(cuò)很詳細(xì),轉(zhuǎn)一個(gè)!其中base64報(bào)錯(cuò)的確實(shí)是一個(gè)坑,挺惡心,發(fā)現(xiàn)支付寶和微信官方文檔都是寫得不怎么詳盡 在...
    白屏閱讀 1,829評論 4 48
  • 中學(xué)時(shí)代幾乎每年寒暑假,我和妹妹都會(huì)從鄉(xiāng)下乘坐大巴來上海,陪伴在這里打工的母親。當(dāng)時(shí)父親在家務(wù)農(nóng),同時(shí)照顧我和妹妹...
    趙不棄閱讀 307評論 2 4

友情鏈接更多精彩內(nèi)容