iOS- 如何集成支付寶

//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄

//詳情 :鏈接 http://write.blog.csdn.net/postedit/74078904

現(xiàn)在不少app內(nèi)都集成了支付寶功能

使用支付寶進(jìn)行一個完整的支付功能衅谷,大致有以下步驟:

1>先與支付寶簽約,獲得商戶ID(partner)和賬號ID(seller)

(這個主要是公司的負(fù)責(zé))

2>下載相應(yīng)的公鑰私鑰文件(加密簽名用)

3>下載支付寶SDK(登錄網(wǎng)站:http://club.alipay.com/

里面提供了非常詳細(xì)的文檔篮昧、如何簽約暇昂、如何獲得公鑰私鑰、如何調(diào)用支付接口掰烟。

4>生成訂單信息

5>調(diào)用支付寶客戶端爽蝴,由支付寶客戶端跟支付寶安全服務(wù)器打交道

6>支付完畢后返回支付結(jié)果給商戶客戶端和服務(wù)器

SDK里有集成支付寶功能的一個Demo> ?集成支付功能的具體操作方式,可以參考Demo

當(dāng)?shù)谝淮未蜷_Demo時纫骑,可能會出現(xiàn)以下問題:

錯誤原因很簡單蝎亚,就是項目的部署版本設(shè)置太低了,從3.0改為4.3即可

要想集成支付功能先馆,依賴以下文件夾的庫文件(把這3個添加到你的客戶端中)

調(diào)用支付接口可以參考AlixPayDemoViewController的下面方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

如何創(chuàng)建訂單 ( 訂單根據(jù)自己公司看是什么樣的)

如何簽名

如何調(diào)用支付接口

都在這個方法里面了

1//2//選中商品調(diào)用支付寶快捷支付3//4- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath5{6/*7*點擊獲取prodcut實例并初始化訂單信息8*/9Product *product =[_products objectAtIndex:indexPath.row];1011/*12*商戶的唯一的parnter和seller发框。13*本demo將parnter和seller信息存于(AlixPayDemo-Info.plist)中,外部商戶可以考慮存于服務(wù)端或本地其他地方。14*簽約后煤墙,支付寶會為每個商戶分配一個唯一的 parnter 和 seller梅惯。15*/16//如果partner和seller數(shù)據(jù)存于其他位置,請改寫下面兩行代碼17NSString *partner = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"Partner"];18NSString *seller = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"Seller"];1920//partner和seller獲取失敗,提示21if([partner length] ==0|| [seller length] ==0)22{23UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"24message:@"缺少partner或者seller。"25delegate:self26cancelButtonTitle:@"確定"27otherButtonTitles:nil];28[alert show];29[alert release];30return;31}3233/*34*生成訂單信息及簽名35*由于demo的局限性仿野,本demo中的公私鑰存放在AlixPayDemo-Info.plist中,外部商戶可以存放在服務(wù)端或本地其他地方铣减。36*/37//將商品信息賦予AlixPayOrder的成員變量38AlixPayOrder *order =[[AlixPayOrder alloc] init];39order.partner =partner;40order.seller =seller;41order.tradeNO = [self generateTradeNO];//訂單ID(由商家自行制定)42order.productName = product.subject;//商品標(biāo)題43order.productDescription = product.body;//商品描述44order.amount = [NSString stringWithFormat:@"%.2f",product.price];//商品價格45order.notifyURL =@"http://www.xxx.com";//回調(diào)URL4647//應(yīng)用注冊scheme,在AlixPayDemo-Info.plist定義URL types,用于快捷支付成功后重新喚起商戶應(yīng)用48NSString *appScheme =@"AlixPayDemo";4950//將商品信息拼接成字符串51NSString *orderSpec =[order description];52NSLog(@"orderSpec = %@",orderSpec);5354//獲取私鑰并將商戶信息簽名,外部商戶可以根據(jù)情況存放私鑰和簽名,只需要遵循RSA簽名規(guī)范,并將簽名字符串base64編碼和UrlEncode55id signer = CreateRSADataSigner([[NSBundle mainBundle] objectForInfoDictionaryKey:@"RSA private key"]);56NSString *signedString =[signer signString:orderSpec];5758//將簽名成功字符串格式化為訂單字符串,請嚴(yán)格按照該格式59NSString *orderString =nil;60if(signedString !=nil) {61orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",62orderSpec, signedString,@"RSA"];6364//獲取快捷支付單例并調(diào)用快捷支付接口65AlixPay * alixpay =[AlixPay shared];66intret =[alixpay pay:orderString applicationScheme:appScheme];6768if(ret ==kSPErrorAlipayClientNotInstalled) {69UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示"70message:@"您還沒有安裝支付寶快捷支付,請先安裝设预。"71delegate:self72cancelButtonTitle:@"確定"73otherButtonTitles:nil];74[alertView setTag:123];75[alertView show];76[alertView release];77}78elseif(ret ==kSPErrorSignError) {79NSLog(@"簽名錯誤徙歼!");80}8182}8384[tableView deselectRowAtIndexPath:indexPath animated:YES];85}

主要集成的關(guān)鍵就是下面幾步:

//.封裝訂單模型AlixPayOrder *order =[[AlixPayOrder alloc] init];//生成訂單描述NSString *orderSpec =[order description];//2.簽名id signer =CreateRSADataSigner(@“私鑰key”);//傳入訂單描述 進(jìn)行 簽名NSString *signedString =[signer signString:orderSpec];//3.生成訂單字符串NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",

orderSpec, signedString,@"RSA"];//4.調(diào)用支付接口AlixPay * alixpay =[AlixPay shared];//appScheme:商戶自己的協(xié)議頭intret = [alixpay pay:orderString applicationScheme:appScheme];

謝謝!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鳖枕,隨后出現(xiàn)的幾起案子魄梯,更是在濱河造成了極大的恐慌,老刑警劉巖宾符,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酿秸,死亡現(xiàn)場離奇詭異,居然都是意外死亡魏烫,警方通過查閱死者的電腦和手機辣苏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門肝箱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稀蟋,你說我怎么就攤上這事煌张。” “怎么了退客?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵骏融,是天一觀的道長。 經(jīng)常有香客問我萌狂,道長档玻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任茫藏,我火速辦了婚禮误趴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘务傲。我一直安慰自己凉当,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布树灶。 她就那樣靜靜地躺著纤怒,像睡著了一般糯而。 火紅的嫁衣襯著肌膚如雪天通。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天熄驼,我揣著相機與錄音像寒,去河邊找鬼。 笑死瓜贾,一個胖子當(dāng)著我的面吹牛诺祸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播祭芦,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼筷笨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了龟劲?” 一聲冷哼從身側(cè)響起胃夏,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昌跌,沒想到半個月后仰禀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡蚕愤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年答恶,在試婚紗的時候發(fā)現(xiàn)自己被綠了饺蚊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡悬嗓,死狀恐怖污呼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情包竹,我是刑警寧澤曙求,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站映企,受9級特大地震影響悟狱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堰氓,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一挤渐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧双絮,春花似錦浴麻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至焚挠,卻和暖如春膏萧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝌衔。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工榛泛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人噩斟。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓曹锨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親剃允。 傳聞我的和親對象是個殘疾皇子沛简,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容