第三方支付(微信殴穴、支付寶凉夯、銀聯(lián))

前言

其實支付很簡單,下載官方的SDK采幌,根據(jù)里面的開發(fā)者文檔和Demo劲够,配置支付,不會可以問客服休傍。(畢竟掏錢了嘛)

支付寶支付 (根據(jù)支付寶開發(fā)包流程進(jìn)行操作)

1征绎、下載官方SDK

支付寶SDK下載官方網(wǎng)站

https://doc.open.alipay.com/doc2/detail

2、添加依賴庫?


添加頭文件

(直接把官方的Order類文件拉進(jìn)去 還有l(wèi)ibcrypto.a libssl.a 這兩個靜態(tài)庫也拉進(jìn)去 openssl 文件夾 Util文件夾 畢竟人家都寫好了 不用白不用)

#import "Order.h"?

#import "DataSigner.h"

#import<AlipaySDK/AlipaySDK.h>

iOS9需要 配置ATS(App TransPort Security)

在相對應(yīng)的info.list文件添加ATS 在Allow Arbitrary Loads 選擇YES (沒辦法啊只能先用http吧)

報錯'NSObject' 'Base64' 添加頭文件 #import<Foundation/Foundation.h>

路徑找不到的錯誤 就在“Build Settings”選項卡,在搜索框中,以關(guān)鍵字“search”搜索,對“Header Search Paths”增加頭文件路徑:$(SRCROOT)/項目名稱磨取。

重要參數(shù)

商戶的唯一的parnter和seller簽約后人柿,支付寶會為每個商戶分配一個唯一的 parnter 和 seller

parnter是商戶ID 以 2088 開頭由 16 位純數(shù)字組成的字符串。

seller是賬戶ID 支付寶收款賬號,手機(jī)號碼或郵箱格式忙厌。

私鑰:用來加密.在前端進(jìn)行使用

公鑰:用來解密.通過網(wǎng)頁的形式上傳到支付寶公司

事例Demo

首先在AppDelegate.m引入頭文件#import<AlipaySDK/AlipaySDK.h>

然后添加返回數(shù)據(jù)的方法

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options

{

[[AlipaySDK defaultService]

processOrderWithPaymentResult:url

standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);//返回的支付結(jié)果?

//【由于在跳轉(zhuǎn)支付寶客戶端支付的過程中,商戶 app 在后臺很可能被系統(tǒng) kill 了,所以 pay 接 口的 callback 就會失效,請商戶對 standbyCallback 返回的回調(diào)結(jié)果進(jìn)行處理,就是在這個方法 里面處理跟 callback 一樣的邏輯】

}];

return YES;

}


在Info.plist里面添加URL types 添加item URL identifier 再添加 URL Schemes 再添加一個字符串類型 這就是返回的字符串 (必須添加 坑點Y灬!7昃弧)


/*? ? *商戶的唯一的parnter和seller哥放。? ? *簽約后扎阶,支付寶會為每個商戶分配一個唯一的 parnter 和 seller。? ? */? ? //以2088開頭由16位純數(shù)字字符串??

? NSString *partner = @"2088501566833063";//商戶ID ??

?NSString *seller = @"wangxiang@qq.com";//賬戶id手機(jī)號碼 或者郵箱格式? ?

?NSString *privateKey = @"好大一串密碼婶芭!";//私鑰? ? //公鑰用來解密的? ? ? ? //partner和seller獲取失敗,提示? ?

?if ([partner length] == 0 ||? ? ?

?? [seller length] == 0 ||? ?

?? ? [privateKey length] == 0)??

? {? ? ? ? NSLog(@"缺少partner和seller或者私匙");? ? ? ? return;? ? }? ? ?

?? /*? ? *生成訂單信息及簽名? ? */??

? //將商品信息賦予AlixPayOrder的成員變量??

? Order *order = [[Order alloc] init];? ?

?order.partner = partner;??

? order.seller = seller;? ?

?order.tradeNO = @"20160109095"; //訂單ID(由商家自行制定)??

? order.productName = @"煎餅果子鄭能量"; //商品標(biāo)題? ?

?order.productDescription = @"煎餅果子最好吃只要998"; //商品描述??

? order.amount = [NSString stringWithFormat:@"%.2f",998.80]; //商品價格? ?

?//跟公司后臺服務(wù)器進(jìn)行回調(diào) 支付完成后告訴后臺是否成功 ?(.2f貌似改了支付不能完成)

? order.notifyURL =? @"http://app.chengchina.com/wash/unionpay/mobilenotify"; //回調(diào)URL? ??

//以下信息是支付的基本配置信息? ?

order.service = @"mobile.securitypay.pay";? ?

order.paymentType = @"1";??

order.inputCharset = @"utf-8";? ?

order.itBPay = @"30m";??

order.showUrl = @"m.alipay.com"; ?//應(yīng)用注冊scheme,在AlixPayDemo-Info.plist定義URL types? ??

NSString *appScheme = @"alisdkdemo"; ? //將商品信息拼接成字符串? ?

?NSString *orderSpec = [order description];??

? NSLog(@"orderSpec = %@",orderSpec);? ? ? ?

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

id<DataSigner>signer = CreateRSADataSigner(privateKey);

NSString *signedString = [signer signString:orderSpec];

//將簽名成功字符串格式化為訂單字符串,請嚴(yán)格按照該格式

NSString *orderString = nil;

if (signedString != nil) {

orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",

orderSpec, signedString, @"RSA"];

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {

//支付寶回調(diào)信息 標(biāo)示成功或者失敗 還是用戶取消 網(wǎng)絡(luò)中斷等

NSLog(@"reslut = %@",resultDic);

}];

}

9000 訂單支付成功

8000 正在處理中

4000 訂單支付失敗

6001 用戶中途取消

6002 網(wǎng)絡(luò)連接出錯


微信支付

SDK下載網(wǎng)址 (微信更簡單)

【微信支付】APP支付開發(fā)者文檔

先注冊一個APPID

商戶在微信開放平臺申請開發(fā)APP應(yīng)用后,微信開放平臺會生成APP的唯一標(biāo)識APPID着饥。

這個id是在AppDelegate.m里面的didFinishLaunchingWithOptions的方法里面用的

添加依賴庫


再添加SDKExport文件夾 從官方Demo拖

頭文件引用

#import "WXApi.h"

#import "WXApiObject.h"

客戶端錯誤碼 (這都是定好的)


編譯 改錯

實例

PayReq *request = [[PayReq alloc] init];

//? ? 商家向財付通申請的商家id

request.partnerId = @"1220277201";

//? ? 預(yù)支付訂單:包含商品的標(biāo)題 描述 價格等商品信息

request.prepayId= @"920103900016010965/5";

//相當(dāng)于一種標(biāo)識

request.package = @"Sign=WXPay";

/** 隨機(jī)串犀农,防重發(fā) */

request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c";

//從1970年之后的秒數(shù) 還是防止重復(fù)

request.timeStamp= 139777777; //時間戳

//商家根據(jù)微信開放平臺文檔對數(shù)據(jù)做的簽名 加密數(shù)據(jù)用的

request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256";

//調(diào)用微信支付

[WXApi sendReq:request];


在AppDelegate.m里面添加#import "WXApi.h"? 協(xié)議WXApiDelegate

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

//向微信注冊appid??

? //Description : 更新后的api 起到解釋的作用??

? [WXApi registerApp:@"wx920fde9f97d60569" withDescription:@"微信支付"];? ??

? ? return YES;

}

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options

{

return [WXApi handleOpenURL:url delegate:self];

}

#pragma mark -WXApiDelegate

-(void)onResp:(BaseResp*)resp{

//微信支付后回調(diào)代理方法

//返回一些支付成功 失敗的信息

if ([resp isKindOfClass:[PayResp class]]){

PayResp*response=(PayResp*)resp;

switch(response.errCode){

case WXSuccess:

//服務(wù)器端查詢支付通知或查詢API返回的結(jié)果再提示成功

NSLog(@"支付成功");

break;

default:

NSLog(@"支付失敗,retcode=%d",resp.errCode);

break;

? ? ? }

? ?}

}


銀聯(lián)支付

官方SDK地址 ?(這個地址是個坑 銀聯(lián)就是牛 下載包還是RAR格式)

商家技術(shù)服務(wù)

銀聯(lián)支付代碼很少就兩行 難點在于配置銀聯(lián)支付

這個SDK有兩個版本 這兩個版本是不兼容的宰掉,兩個都導(dǎo)入就會報錯

1呵哨、支持無卡交易靜態(tài)庫,簡稱UPPayPlugin, 包含三個文件UPPayPlugin.h UPPayPluginDelegate.h libUPPayPlugin.a?

2轨奄、支持純無卡交易和VIPOS音頻口支付靜態(tài)庫 UPPayPluginPro (這是要用POS機(jī)的)

UPPayPluginPro.h ?UPPayPluginDelegate.h libUPPayPluginPro.a

如果是UPPayPlugin 要添加 QuartzCore.framework 孟害、Security.framework 這兩個依賴庫

如果是UPPayPluginPro 要添加 QuartzCore.framework 、AudioToolbox.framework 這兩個依賴庫

把sdk 拉進(jìn)工程 引入框架

實現(xiàn)<UPPayPluginDelegate>代理

//startPay 預(yù)支付訂單 標(biāo)題 價格 描述

//mode 環(huán)境 00表示正式 01表示測試

//常見錯誤 把.m 改成.mm格式?

[UPPayPlugin startPay:@"201601090436140530789" mode:@"00" viewController:self delegate:self]; //就這一行

寫一個支付方法的回調(diào)

#pragma mark -UPPayPluginDelegate

-(void)UPPayPluginResult:(NSString *)result

{

NSLog(@"支付完成后的回調(diào) %@",result);

}

在budsiting 搜索linking


搜索 c++ sta? C++ Standard Library 屬性值修改為 Compiler Default


搜索 c++ la? C++ Language Dialect 屬性值修改為 Compiler Default


這樣就完成配置了

運行 這樣就實現(xiàn)銀聯(lián)支付了挪拟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挨务,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子玉组,更是在濱河造成了極大的恐慌谎柄,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惯雳,死亡現(xiàn)場離奇詭異朝巫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)石景,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門劈猿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潮孽,你說我怎么就攤上這事揪荣。” “怎么了往史?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵变逃,是天一觀的道長。 經(jīng)常有香客問我怠堪,道長揽乱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任粟矿,我火速辦了婚禮凰棉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘陌粹。我一直安慰自己撒犀,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著或舞,像睡著了一般荆姆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上映凳,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天胆筒,我揣著相機(jī)與錄音,去河邊找鬼诈豌。 笑死仆救,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矫渔。 我是一名探鬼主播彤蔽,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼庙洼!你這毒婦竟也來了顿痪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤油够,失蹤者是張志新(化名)和其女友劉穎员魏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叠聋,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡撕阎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碌补。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虏束。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖厦章,靈堂內(nèi)的尸體忽然破棺而出镇匀,到底是詐尸還是另有隱情,我是刑警寧澤袜啃,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布汗侵,位于F島的核電站,受9級特大地震影響群发,放射性物質(zhì)發(fā)生泄漏晰韵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一熟妓、第九天 我趴在偏房一處隱蔽的房頂上張望雪猪。 院中可真熱鬧,春花似錦起愈、人聲如沸只恨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽官觅。三九已至纵菌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間休涤,已是汗流浹背咱圆。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留滑绒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓隘膘,卻偏偏與公主長得像疑故,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子弯菊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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