Braintree集成

一沐绒、原因

paypal SDK已經(jīng)不再維護(hù)瘫里,并且上架的時(shí)候會被拒提示里面還有UIWebView,

所以替換成Braintree(二者已統(tǒng)一為一家付呕,流程類似).

二、準(zhǔn)備工作

1.?注冊并登錄paypal business賬號

2.?點(diǎn)擊My Apps & Credentials -> create App創(chuàng)建App成功之后你會得到三個(gè)?值Sandbox account告私、Client ID 、secret

3.?注冊并登錄Braintree沙盒注冊鏈接????

4.?進(jìn)入Settings->API keys屿良,點(diǎn)擊Generate New?APIkey生成公鑰屎蜓、私鑰由服務(wù)端生成token,也可以直接點(diǎn)擊Generate New Tokenization Key生成新的Tokenization Keys

5.?把支付方的paypal支付打開點(diǎn)擊Setting->Processing點(diǎn)擊Link Sandbox茂嗓,將上面的三個(gè)值依次填入餐茵,然后點(diǎn)擊link PayPal Sandbox,之后在支付的時(shí)候就可以使用paypal沙盒的買家賬號直接登錄支付了在抛。

三钟病、集成

1.?CocoaPods?引入三方庫

pod?'Braintree'

2.因?yàn)樯婕暗紿5頁面支付,需要設(shè)注冊一個(gè)URL類型1).在Xcode中刚梭,在Project Navigator中點(diǎn)擊您的項(xiàng)目肠阱,然后導(dǎo)航到App Target > Info > URL Types2).點(diǎn)擊[+]添加新的URL類型3).在URL Schemes下,輸入您的應(yīng)用切換返回URL方案朴读。該方案必須以您的應(yīng)用程序的Bundle ID開始屹徘,并致力于Braintree應(yīng)用程序切換返回。例如衅金,如果應(yīng)用程序包ID是com.your-company.Your-App噪伊,那么您的URL方案可能是com.your-company.Your-App.payments。

3.引入頭文件

#import?<BraintreePayPal.h>

#import?<BraintreeCore.h>


4.?在AppDelegate中的application:didFinishLaunchingWithOptions:實(shí)現(xiàn)氮唯,使用setReturnURLScheme:與您在上面設(shè)置的值


[BTAppSwitch setReturnURLScheme:@"Bundle ID.payments"];



-?(BOOL)application:(UIApplication?*)application

????????????openURL:(NSURL?*)url

?????????options:(NSDictionary<UIApplicationOpenURLOptionsKey,id>?*)options?{

????if?([url.scheme localizedCaseInsensitiveCompare:@"com.your-company.Your-App.payments"]?==?NSOrderedSame)?{

????????return?[BTAppSwitch handleOpenURL:url options:options];

????}

????return?NO;}

// If you support iOS 7 or 8, add the following method.-?(BOOL)application:(UIApplication?*)application

????????????openURL:(NSURL?*)url

??sourceApplication:(NSString?*)sourceApplication

?????????annotation:(id)annotation?{

????if?([url.scheme localizedCaseInsensitiveCompare:@"com.your-company.Your-App.payments"]?==?NSOrderedSame)?{

????????return?[BTAppSwitch handleOpenURL:url sourceApplication:sourceApplication];

????}

????return?NO;}


5.通過接口獲取braintreeToken

6.進(jìn)行支付

?NSString*moneys =?minstr([detaiDic valueForKey:@"money"]);

? ? BTAPIClient *braintreeClient = [[BTAPIClient alloc] initWithAuthorization:btcliceToken];

?if(!braintreeClient){

?//clientToken無效

?return;

? ? ? ? }




?? ? ? BTPayPalDriver *dribet = [[BTPayPalDriver alloc]initWithAPIClient:braintreeClient];

?? ? ? BTPayPalRequest *request = [[BTPayPalRequest alloc]initWithAmount:moneys];

request.currencyCode =?@"USD";//貨幣類型

request.localeCode =?@"zh_CN";//語言

? ? BTPayPalLineItem *item = [[BTPayPalLineItem alloc] initWithQuantity:@"1"?unitAmount:moneys name:minstr([detaiDic valueForKey:@"desc"]) kind:BTPayPalLineItemKindDebit];

item.productCode = orderid;?//訂單編號

request.lineItems =?@[item];


[dribet requestOneTimePayment:request completion:^(BTPayPalAccountNonce *?_NullabletokenizedPayPalAccount, NSError *?_Nullable?error) {

?if?(tokenizedPayPalAccount) {//支付成功

?//TODO 調(diào)用后臺接口鉴吹,傳遞 tokenizedPayPalAccount.nonce 和 orderNo

?? ? ? ? ? ? ? [self?uploadonce:tokenizedPayPalAccount.nonce andorderid:orderid andmoney:moneys];

}?else?if?(error) {

?// Handle error here...

?NSLog(@"支付失敗 :%@", error);

?if?([self.delegate respondsToSelector:@selector(paypalFaile:)]) {

? ? ? ? ? ? ? ? ? ? ? ? ? [self.delegate paypalFaile:1];

? ? ? ? ? ? ? ? ? ? ? }

}?else?{

?// Buyer canceled payment approval

?NSLog(@"支付 取消");

?if?([self.delegate respondsToSelector:@selector(paypalFaile:)]) {

? ? ? ? ? ? ? ? ? ? ? ? ? [self.delegate paypalFaile:2];

? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? }

?NSLog(@"獲取cc===%@===%@",tokenizedPayPalAccount.nonce,error);


?? ? ? }];

注意:URL Schemes添加的xxxx.payments以及在AppDelegate用設(shè)置的xxxx.payments中的xxxx一定要與項(xiàng)目的包名一直,否則打包后不會調(diào)起paypal,一直提示支付失敗.(簽名包確認(rèn)下會不會改包名,如果改的話xxxx需要換成修改后的包名).

更多內(nèi)容請關(guān)注小程序 代碼匯集地

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惩琉,一起剝皮案震驚了整個(gè)濱河市豆励,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞒渠,老刑警劉巖良蒸,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伍玖,居然都是意外死亡嫩痰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門窍箍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來串纺,“玉大人丽旅,你說我怎么就攤上這事≡於猓” “怎么了魔招?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長五辽。 經(jīng)常有香客問我办斑,道長,這世上最難降的妖魔是什么杆逗? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任乡翅,我火速辦了婚禮,結(jié)果婚禮上罪郊,老公的妹妹穿的比我還像新娘蠕蚜。我一直安慰自己,他們只是感情好悔橄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布靶累。 她就那樣靜靜地躺著,像睡著了一般癣疟。 火紅的嫁衣襯著肌膚如雪挣柬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天睛挚,我揣著相機(jī)與錄音邪蛔,去河邊找鬼。 笑死扎狱,一個(gè)胖子當(dāng)著我的面吹牛侧到,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淤击,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼匠抗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了污抬?” 一聲冷哼從身側(cè)響起戈咳,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壕吹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體删铃,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耳贬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了猎唁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咒劲。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出腐魂,到底是詐尸還是另有隱情帐偎,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布蛔屹,位于F島的核電站削樊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兔毒。R本人自食惡果不足惜漫贞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望育叁。 院中可真熱鬧迅脐,春花似錦、人聲如沸豪嗽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽龟梦。三九已至隐锭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間变秦,已是汗流浹背成榜。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹦玫,地道東北人赎婚。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像樱溉,于是被迫代替她去往敵國和親挣输。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

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