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

支付寶是第三方支付平臺(tái),簡(jiǎn)單來(lái)說(shuō)就是協(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 一般的常見問(wèn)題解決

1 No architecutures to compile for (ONLY_ACTIVE_ARCH = YES, active arch = x86_64,VALID_ARCHS = i386)

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

解決方案:

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

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

出現(xiàn)這樣的問(wè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 find interface declaration for "NSObject", supercalss of 'Base64'

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

#import <Foundation/Foundation.h>

基本上支付寶中的demo 里面的問(wèn)題一般都會(huì)得到解決。然后 看著demo 跟實(shí)際的項(xiàng)目結(jié)合一下就ok 了

正式開始 ?支付寶教程:

(因?yàn)樯暾?qǐng)的工作不是我做的 所以就此過(guò)程就略了 )

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

2 添加 庫(kù) ?

Linked Frameworks and Libraries ?中 添加

libssl.a ? libcrypto.a ? SystemConfiguration.framework ?

AlipaySDK.framework

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

#import "Order.h"

#import "DataSigner.h"

#import <AlipaySDK/AlipaySDK.h>

?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,478評(píng)論 3 22
  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購(gòu))。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    帥不過(guò)oneS閱讀 3,009評(píng)論 2 8
  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購(gòu))。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    sillen閱讀 1,464評(píng)論 0 1
  • 因?yàn)榻陧?xiàng)目中需要接入支付寶支付功能,自己也爬了很多的坑,所以做了一下這邊文章供大家學(xué)習(xí)參考,遠(yuǎn)離爬坑,文章主要講...
    啓蘊(yùn)閱讀 2,362評(píng)論 0 4
  • 在我們應(yīng)用開發(fā)中我們經(jīng)常在自己的項(xiàng)目中使用到支付,下面我們來(lái)談?wù)刬OS這塊的支付;iOS支付主要分為兩類,第三方支...
    Hither閱讀 8,524評(píng)論 9 42

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