iOS-面試之你做過支付沒有?

支付寶是第三方支付平臺(tái),簡(jiǎn)單來(lái)說就是協(xié)調(diào)客戶,商戶,銀行三者關(guān)系的方便平臺(tái)

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

a與支付寶進(jìn)行簽約,獲得商戶ID(partner)和賬號(hào)ID(seller)

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

c下載支付寶SDK

d生成訂單信息

e調(diào)用支付寶客戶端,有支付寶客戶端跟支付寶安全服務(wù)器打交道

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

支付功能的實(shí)現(xiàn)

有兩種方式:

1支付寶的應(yīng)用可以 用url直接連接到

支付寶的官網(wǎng) (當(dāng)然后臺(tái)是要進(jìn)行處理的)

2第二種就是添加支付寶的第三方了 首先 下載支付寶的demo

支付寶的demo一般的常見問題解決

1 No architecuturesto compilefor(ONLY_ACTIVE_ARCH =YES, active arch = x86_64,VALID_ARCHS = i386)

出現(xiàn)這樣的問題一般是

將64位編譯進(jìn)去就能解決了(這個(gè)問題只要你下載的是最新的demo一般很少見了 )

解決方案:

targets

-> Architectures下面的Valid Architectures添加上arm64

2將支付寶的第三方添加到項(xiàng)目中的時(shí)候 有時(shí) 會(huì)出現(xiàn)openssl文件中的.h文件報(bào)錯(cuò)

說此文件不能被找到出現(xiàn)這樣的問題是 的原因一般是添加的路徑 不對(duì)

解決方案:

點(diǎn)擊項(xiàng)目名稱,點(diǎn)擊“Build Settings”選項(xiàng)卡,在搜索框中,以關(guān)鍵字“search”搜索,對(duì)“Header Search Paths”增加頭文件路徑:$(SRCRCOT)/項(xiàng)目名稱 設(shè)置一下路徑 一般都能解決。

3? Cannot findinterface declarationfor"NSObject", supercalss of 'Base64'

解決方案打開報(bào)錯(cuò)的文件,增加頭文件

#import

基本上支付寶中的demo里面的問題一般都會(huì)得到解決。然后

看著demo跟實(shí)際的項(xiàng)目結(jié)合一下就ok了

正式開始支付寶教程:

1將需要的文件,靜態(tài)庫(kù)等拖入工程中,這里有:include,libs,Utilities,libcrypto.a,libssl.a文件

2添加 庫(kù)

Linked

FrameworksandLibraries中 添加

libssl.a

libcrypto.a ? SystemConfiguration.framework

AlipaySDK.framework

3如果商戶要在某個(gè)文件中使用給支付寶的SDK類庫(kù),需要增加引用頭文件

#import"Order.h"

#import"DataSigner.h"

#import

4后面的基本上都是 按照官方demo寫的

接口調(diào)用步驟:

1.封裝訂單模型將商品信息賦予AlixPayOrder的成員變量

Order *order =

[[Order alloc] init];

應(yīng)用注冊(cè)scheme,在項(xiàng)目的info.plist定義URL types

NSString *appScheme =@"zhifu";

生成訂單描述

NSString *orderSpec =

[order description];

2.簽名:獲取私鑰并將商戶信息簽名,外部商戶可以根據(jù)情況存放私鑰和簽名,只需要遵循RSA簽名規(guī)范,并將簽名字符串base64編碼和UrlEncode

idsigner

= CreateRSADataSigner(@“私鑰key”);

NSString

*signedString = [signer signString:orderSpec];

傳入訂單描述

進(jìn)行 簽名

NSString

*signedString = [signer signString:orderSpec];

3.生成訂單字符串

NSString *orderString= [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",orderSpec,signedString,@"RSA"];

4.調(diào)用支付接口

[[AlipaySDK

defaultService] payOrder:orderString fromScheme:appScheme

callback:^(NSDictionary *resultDic) { }];

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購(gòu))。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    請(qǐng)輸入賬號(hào)名閱讀 6,475評(píng)論 3 22
  • 在我們應(yīng)用開發(fā)中我們經(jīng)常在自己的項(xiàng)目中使用到支付,下面我們來(lái)談?wù)刬OS這塊的支付;iOS支付主要分為兩類,第三方支...
    Hither閱讀 8,516評(píng)論 9 42
  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購(gòu))。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    sillen閱讀 1,463評(píng)論 0 1
  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購(gòu))。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    帥不過oneS閱讀 3,007評(píng)論 2 8
  • 陽(yáng)光透過樹蔭,照在樹梢,地下留下依稀可見的樹影,空氣中彌留著夏天枯燥悶熱的氣氛,而此時(shí)在東陽(yáng)市朝陽(yáng)高中高三3班的...
    逝憶幻影閱讀 198評(píng)論 0 1

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