iOS oc版Stripe支付

? ?之前有個(gè)項(xiàng)目是要做海外支付業(yè)務(wù),最后大家決定用stripe支付,但是iOS Stripe支付中文的資料很少,我看到的也只有swift版本的資料,我就整理下自己做oc版Stripe時(shí)踩過(guò)的坑和一點(diǎn)經(jīng)驗(yàn)吧。才疏學(xué)淺,歡迎指正。


? 首先stripe支付是一種海外信用卡支付在線支付,只要你輸入信用卡號(hào)和后面CVC就可以支付了,stripe也提供了很詳細(xì)的文檔:stripe 官方ios文檔,直接看文檔就可以完成stripe支付的集成,不過(guò)如果覺(jué)得自己英文不太好,可以看下我做的步驟。

1,導(dǎo)入SDK

有好多導(dǎo)入的方法,我是使用的cocospod導(dǎo)入的:pod Stripe

2,App delegate中集成stripe

在 AppDelegate.m 中

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

[[STPPaymentConfigurationsharedConfiguration]setPublishableKey:kStripePublishableKey];
...

returnYES;

}

其中 kStripePublishableKey 是你在stripe上申請(qǐng)的公鑰

stripe還支持Apple pay ,如果要加入Apple pay的話還要加上這句:

[[STPPaymentConfigurationsharedConfiguration] setAppleMerchantIdentifier:@"your apple merchant identifier"];

3,支付頁(yè)面

stripe的SDK中提供了系統(tǒng)默認(rèn)的付款頁(yè)面,我們之前的項(xiàng)目就是采用的系統(tǒng)默認(rèn)的付款頁(yè)面。

1,STPAddCardViewController

這是一個(gè)添加信用卡的頁(yè)面,彈出后會(huì)是一個(gè)添加信用卡的界面。假設(shè)頁(yè)面A可以push出STPAddCardViewController,我們就將STPAddCardViewController的delegate設(shè)置為A,實(shí)現(xiàn)它的回調(diào)方法

//添加新的信用卡

STPAddCardViewController*addCardViewController = [[STPAddCardViewControlleralloc]init];

addCardViewController.delegate= self;

其中比較關(guān)鍵的代理方法有:

// ? ?添加信用卡的取消回調(diào)

- (void)addCardViewControllerDidCancel:(STPAddCardViewController*)addCardViewController

//? 添加信用卡后我們可以拿到stripe返回的一個(gè)STPToken,而這個(gè)token里面有后端需要的參數(shù),token_id 和 created 這是后臺(tái)實(shí)際支付時(shí)需要的,將他們傳給后臺(tái),回調(diào)成功后就代表付款成功了

- (void)addCardViewController:(STPAddCardViewController*)addCardViewControllerdidCreateToken:(STPToken*)tokencompletion:(STPErrorBlock)completion

2,STPPaymentCardTextField

這是一個(gè)選擇新卡支付的頁(yè)面,選擇卡后同樣進(jìn)行回調(diào)實(shí)現(xiàn)支付

// 這是他的回調(diào)方法

-(void)paymentCardTextFieldDidChange:(STPPaymentCardTextField*)textField{NSLog(@"Card number: %@ Exp Month: %@ Exp Year: %@ CVC: %@",textField.cardParams.number,@(textField.cardParams.expMonth),@(textField.cardParams.expYear),textField.cardParams.cvc);self.buyButton.enabled=textField.isValid;}


? ?以上就是很簡(jiǎn)單的stripe支付行為,官方也寫(xiě)的很詳細(xì),如果可以看的話看英文文檔是最好的,官方也提供了一個(gè)demo:demo地址。結(jié)合著demo應(yīng)該很快就可以實(shí)現(xiàn)stripe支付。

? ?我對(duì)stripe支付的理解是客戶端這邊拿到用戶的token的相關(guān)信息,然后后臺(tái)用這些信息去實(shí)現(xiàn)真正的付款行為,所以客戶端這邊的工作只是一個(gè)獲取token和實(shí)現(xiàn)回調(diào)的工作,真正的支付行為是發(fā)生在后臺(tái)的。

寫(xiě)的不對(duì)的地方歡迎大家指正,大家共同進(jìn)步。


我的github:Baoy

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

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

  • 前文 前段時(shí)間在空暇時(shí)間寫(xiě)了GoogleMaps的使用指南,剛寫(xiě)完的一段時(shí)間,發(fā)現(xiàn)并沒(méi)有人閱讀,所以不太想寫(xiě)第二篇...
    ZHANGKAILUN_閱讀 4,946評(píng)論 16 9
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,752評(píng)論 8 183
  • 突然想到昨天回答室友問(wèn)題時(shí)的神回答。 一室友苦悶的問(wèn)道:你們平時(shí)是怎么泄憤的? 我回答:拉屎啊!
    李璐妞妞妞閱讀 190評(píng)論 0 2
  • 1 娃催促帶著她的狗狗去打針洗澡,在寵物醫(yī)院,人家天使阿姨批評(píng)了她——看得出來(lái),不肯好好洗澡梳毛,是因?yàn)樘珜欀@個(gè)...
    木徒閱讀 539評(píng)論 0 1
  • 我要一步一步往上爬等待陽(yáng)光靜靜看著它的臉小小的天有大大的夢(mèng)想重重的殼裹著輕輕地仰望我要一步一步往上爬在最高點(diǎn)乘著葉...
    流浪的流浪的面包樹(shù)閱讀 792評(píng)論 17 14

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