1. 程式人生 > >iOS 支付寶支付的使用

iOS 支付寶支付的使用

有篇文章寫了如果整合支付寶的SDK,以及在整合SDK中我們遇到的錯誤和解決方法,這次就總結下支付寶如何使用;
在支付寶開放平臺中,我們可以下載相應的SDK,並且裡面也有demo,可以參照裡面的方法來實現我們的需求,,我們這裡接入了支付寶的支付和微信支付,隨後會在寫關於微信支付的文章;

在這裡就做一下簡單的使用:
在.m檔案中建立一個button,點選button觸發支付寶的支付;

- (void)viewDidLoad {
    [super viewDidLoad];

    UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame
=CGRectMake(100, 100, 100, 50); [btn setTitle:@"點選支付" forState:UIControlStateNormal]; btn.backgroundColor = [UIColor magentaColor]; [btn addTarget:self action:@selector(doClickAlipay) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; } //該方法為支付寶中demol的一個方法(這裡你們可以從後臺請求獲取到訂單號,是自行制定的)
#pragma mark ==============產生隨機訂單號============== - (NSString *)generateTradeNO { static int kNumber = 15; NSString *sourceStr = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; NSMutableString *resultStr = [[NSMutableString alloc] init]; for (int i = 0; i < kNumber; i++) { unsigned
index = rand() % [sourceStr length]; NSString *oneStr = [sourceStr substringWithRange:NSMakeRange(index, 1)]; [resultStr appendString:oneStr]; } return resultStr; } //最新的支付寶SDK,似乎不用判斷使用者是否安裝有支付寶。本人測試過,如果沒有安裝會直接跳轉網頁支付,如果安裝了則會直接調轉到支付寶客戶端進行支付。(如果害怕有隱患的話,就自己做下處理,判斷是否安裝了支付寶) //點選button,進行支付 - (void)doClickAlipay{ //這三個值是商戶在支付寶平臺註冊申請簽約之後獲得到的值,直接填入就行。 NSString *partner = @""; NSString *seller = @""; NSString *privateKey = @""; //partner和seller獲取失敗,提示 if ([partner length] == 0 || [seller length] == 0 || [privateKey length] == 0) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"缺少partner或者seller或者私鑰。" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil]; [alert show]; return; } /* *生成訂單資訊及簽名 */ //將商品資訊賦予AlixPayOrder的成員變數 Order *order = [[Order alloc] init]; order.partner = partner; order.seller = seller; order.tradeNO = [self generateTradeNO]; //訂單ID(由商家自行制定) order.productName = @"陌野網路科技"; //商品標題 order.productDescription = @"充值"; //商品描述 order.amount = @"0.01"; //商品價格,在這裡為了測試所有價格充值是0.01,這是最小的單位,如果寫0.001在請求支付的時候會有錯誤提示 order.notifyURL = @"http://www.baidu.com"; //回撥URL,可以自己隨便寫個測試下,看下結果是什麼 //這些都不用改 order.service = @"mobile.securitypay.pay"; order.paymentType = @"1"; order.inputCharset = @"utf-8"; order.itBPay = @"30m"; order.showUrl = @"m.alipay.com"; //應用註冊scheme,在AlixPayDemo-Info.plist定義URL types。就是在支付完成後回到我們的原有app中,如果不設定,用的是demol中的則支付後會跳轉到demol中 NSString *appScheme = @"ZhiPayDemol22";

這裡寫圖片描述

 //將商品資訊拼接成字串
    NSString *orderSpec = [order description];
    NSLog(@"orderSpec = %@",orderSpec);

    //獲取私鑰並將商戶資訊簽名,外部商戶可以根據情況存放私鑰和簽名,只需要遵循RSA簽名規範,並將簽名字串base64編碼和UrlEncode
    id<DataSigner> signer = CreateRSADataSigner(privateKey);
    NSString *signedString = [signer signString:orderSpec];

    //將簽名成功字串格式化為訂單字串,請嚴格按照該格式
    NSString *orderString = nil;
    if (signedString != nil) {
        orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
                       orderSpec, signedString, @"RSA"];

        //這是支付成功後的結果
        [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
            NSLog(@"reslut = %@",resultDic);
            //返回結果需要通過resultStatus以及result欄位的值來綜合判斷並確定支付結果。在resultStatus=9000,並且success=“true”以及sign=“xxx”校驗通過的情況下,證明支付成功。其它情況歸為失敗。較低安全級別的場合,也可以只通過檢查resultStatus以及success=“true”來判定支付結果。以下為訂單支付成功的完成資訊示例:
            ResultStatus={9000};memo={};result={partner="2088101568358171"&seller_id="[email protected]"&out_trade_no="0819145412-6177"&subject="測試"&body="測試測試"&total_fee="0.01"&notify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&success="true"&sign_type="RSA"&sign="hkFZr+zE9499nuqDNLZEF7W75RFFPsly876QuRSeN8WMaUgcdR00IKy5ZyBJ4eldhoJ/2zghqrD4E2G2mNjs3aE+HCLiBXrPDNdLKCZgSOIqmv46TfPTEqopYfhs+o5fZzXxt34fwdrzN4mX6S13cr3UwmEV4L3Ffir/02RBVtU="}
        }];

    }

}

在AppDelegate的.m檔案中引入標頭檔案:

#import <AliPaySDK/AlipaySDK.h>

//支付寶支付結果的回撥,在這裡你可以根據支付成功的結果進行相關的操作,比如要跳轉到指定頁面,在這裡就可以寫個通知進行跳轉;

備註:重要更新,如果你發現你的回撥方法沒有走,可能是以下原因。在IOS9.0以後以下兩個方法被廢棄了,所以如果你是Xcode7.2的話,可能會出現不能進入微信的onResp回撥方法,原因是下邊兩個方法沒有被呼叫,所以這裡更新一下,改用另外一個方法(並不建議刪除這兩個方法,新方法是9.0以後的方法,可能系統低版本的使用者不支援。我在這裡使用的是Xcode 7.0)

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

//改用方法為- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options;
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

            NSLog(@" == %@",url.host);
         //在這裡根據url判斷是支付寶的支付還是其他的支付結果
        if ([url.host isEqualToString:@"safepay"]) {

//跳轉支付寶錢包進行支付,處理支付結果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            if ([resultDic[@"ResultStatus"] isEqualToString:@"9000"]) {
                //註冊通知,支付寶支付成功後,跳轉到訂單成功頁面,在PayOrderVC裡面接收通知
                NSNotification * alipayNotification = [NSNotification notificationWithName:@"AlipayNotification" object:nil];
                [[NSNotificationCenter defaultCenter] postNotification:alipayNotification];
            }
        }];
        }
    return YES;
}

相關推薦

iOS中 最新支付支付(AliPay) 韓俊強的博客

urlencode init 易用 微軟雅黑 per 回調 process class lis 每日更新關註:http://weibo.com/hanjunqiang 新浪微博 如今的支付方式一般有三種, 支付寶, 微信, 網銀. 個人認為最簡單易用的還是支付寶

iOS 模仿支付支付到賬推送,播報錢數

最近申請了支付寶的二維碼收錢碼,其中支付寶有這麼一個功能,就是,別人掃描你的二維碼給你轉賬之後,收到錢會有一條語音推送,”支付寶到賬 1000萬“之類的推送訊息,不管你的支付寶app有沒有被殺死。 只要你的遠端推送開著,並且支付寶的"二維碼收錢到賬語音提醒",都開啟著,就可

iOS開發中支付支付的整合(其實很簡單)

最近專案中要使用支付寶支付,記得之前整合支付寶支付是挺麻煩的一件事,可這次整合支付寶支付卻順利、方便了許多,感謝支付寶開放平臺的技術人員將整合文件寫的越來越方便我們這些開發人員使用。先附上支付寶支付整合的官方文件https://docs.open.alipay.com/20

iOS開發 支付支付 包看包會

到這裡下載SDK    https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1 Appdelegate.m #pragma mark - 支付寶回撥 -

iOS 支付支付的使用

有篇文章寫了如果整合支付寶的SDK,以及在整合SDK中我們遇到的錯誤和解決方法,這次就總結下支付寶如何使用; 在支付寶開放平臺中,我們可以下載相應的SDK,並且裡面也有demo,可以參照裡面的方法來實現我們的需求,,我們這裡接入了支付寶的支付和微信支付,隨後會

iOS接入支付支付

因為近期專案中需要接入支付寶支付功能,自己也爬了很多的坑,所以做了一下這邊文章供大家學習參考,遠離爬坑,文章主要講到以下五部分: 一、支付寶開放平臺建立應用 二、簽約移動支付功能 三、接入支付前的準備工作附準備工作中遇到難題的解決方法 四、配置官方Demo附BUG

IOS支付支付成功/取消無法跳轉到本來的App-本人親測解決

      我們一直用的Ping++支付,後來整合原生支付寶支付,出現了問題,就是支付不管成功還是取消都無法跳轉到原來的app 百度了好久也沒有看到,後來終於解決了。很簡單。   // NOTE: 呼叫支付結果開始支付              [[AlipaySDK d

支付支付接入(Android/IOS(swift)/Java後臺)

本文章僅作為個人筆記 IOS端(swift): //從伺服器獲取支付簽名字串,這裡在後面伺服器程式碼裡會說明,交給伺服器處理即可 var signStr = getAliPayPaySignStrFromService() //調起支付寶

iOS整合支付支付

1,SDK匯入 解壓Demo,進入到路徑:Demo/客戶端demo/支付寶錢包支付介面開發包標準版(iOS 15.1.6) 將AlipaySDK.bundle,AlipaySDK.framework匯入到專案 新增依賴,官方文件給的好多依賴,試了下,這幾個

iOS整合支付支付流程詳解

接入前期準備工作 接入前期準備工作包括商戶簽約和金鑰配置。 開發包整合流程:(這裡只是講述iOS) 將我們下載的sdk壓縮包解壓,找到客戶端demo(PS:sdk下載連結:支付寶SDK下載) 匯入程式碼。 步驟一:啟動Xcode,把剛剛解壓的壓縮檔

支付支付 java後端 android ios 前端 開發記錄筆記

JAVA後端 多和客服溝通,比如在使用alipay.trade.app.pay型別支付時遇到APP報錯,錯誤為使用者取消,死活不知道原因,最後客服表示我當前申請的支付寶商家賬號中的APP支付介面過老

iOS程式生命週期,蘋果內購、微信支付支付支付

開發4年了,很少寫部落格,主要是懶,哈哈。遇到不清晰的就翻翻以前的程式碼。有時還找不到,現在發現部落格可以更方便查詢知識點,所以用部落格做筆記吧。也有助於大家學習、交流,先寫一些基礎的吧。 一、iOS程式常識 1. 生命週期 程式啟動時,載入xi

iOS支付支付整合

支付寶和微信都是業界的老大哥,相信大家都有所覺得文件、SDK都是各種坑吧(純粹吐槽而已),本文先整理支付寶支付整合。 一、準備工作 1、向支付寶”簽約" 成為支付寶的”商戶”, 簽約完成後, 支付寶會提供一些必要的資料給我們(商戶ID-partner,帳號

iOS整合支付支付的詳細講解以及常見錯誤

  文章轉載自 http://www.bubuko.com/infodetail-1139083.html ,自覺寫的很詳細,粘貼出來供學習。。。 一,在支付寶開放平臺下載支付寶SDK(https://openhome.alipay.com/platform/docum

支付支付php的demo或sdk報錯 Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in

本地測試 nat pcl 文件 openss sign 使用 是把 交流 最近在做支付寶支付,在本地測試一切正常,上傳到服務器就遇到報錯: Warning: openssl_sign() [function.openssl-sign]: Unknown signature

支付支付代理商 支付支付省級市級服務

支付寶支付 支付寶支付代理商 支付寶省級代理 杭州合言從2015年踏足移動支付行業以來以“為支付寶支付代理商持續提供小而美的改變”為宗旨,結合線上公眾號、支付寶服務窗代理加盟省級市級一級支付寶支付加盟商、采寶移動支付提供支付寶支付等平臺,公司自主研發出線上營銷線下收款的互聯網020閉環營銷集成收單系統-

支付支付口碑招募 支付口碑服務商怎麽申請?

支付寶口碑 移動支付服務商 支付寶商家 支付寶代運營 目前支付寶口碑秉承開放策略,建立商業生態共同服務線下商家。采寶移動支付,可以與口碑達成合作,幫助線下商家入駐口碑平臺,為商家提供代運營、營銷等服務,以此獲得傭金收入。口碑CEO範馳曾表示,口碑平臺將為商家提供生態系統內的諸多能力,包括支付即會員、內容即

支付收款 支付支付支持各種收款

支付寶支付代理 微信支付代理-全國招募 采寶支付收款支付技術開放平臺累計超30萬人次智能掃碼支付。歡迎各服務商和商戶選用最穩定的支付收款工具,一起創新更多移動支付場景。 采寶支付收款可依據場景條件選用:收銀系統對接版、PC電腦版收銀、智

支付下線商家收款 微信支付支付商家

支付寶下線商家收款 收款二維碼 支付寶下線商家收款 簡單來說,它可以用較簡單的方法,幫助中小商家們接入支付寶,快速掃碼,快速支付!與此前打印個人收款二維碼不同,官方收款碼將使商家轉變為簽約商戶,享受向銀行卡提取余額免手續費的優惠。 目前公司發展迅速,簽約商戶已超過10000家。 商

微信支付支付創業好項目 采支付誠招合夥人

微信支付代理 支付寶支付代理商 支付寶省級代理 微信支付寶支付創業好項目?移動支付巨大的市場空間有無僅有的創富商機:移動支付在線下支付的春天即將到來”移動支付市場空間支付寶、微信希望用5年時間推動中國率先進入無現金社會。到2020年第三方移動支付市場的交易規模有望突破1000萬億元、如此巨大的支付市場,