久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

iOS支付[支付寶,、銀聯(lián),、微信]

 my_iOS 2015-09-14

這是開頭語

前不久做了一個(gè)項(xiàng)目,涉及到支付寶和和銀聯(lián)支付,,支付寶和銀聯(lián)都是業(yè)界的老大哥,,文檔,、SDK都是很屌,屌的找不到,,屌的看不懂,,屌到?jīng)]朋友(吐槽而已??),本文將涉及到的最新可用SDK,、文檔,,以及本人支付遇到的一些坑標(biāo)記一下。

資料

支付寶 //文檔idk都包含了安卓,、iOS版

銀 聯(lián)

銀聯(lián)官網(wǎng)資料

Demo

Demo給了一個(gè)訂單號,,做測試使用,若出現(xiàn)支付失敗什么的,,可能是已經(jīng)被別人給支付了,,或者是服務(wù)器訂單過期了 ~

一、支付寶

1.1 請閱讀支付寶文檔和Demo
1.2 導(dǎo)入對應(yīng)的庫
將支付寶Demo中得這些東西全拷貝過來
localhost:alipay mac$ ls
APAuthV2Info.h        Order.h            libssl.a
APAuthV2Info.m        Order.m            openssl
AlipaySDK.bundle    Util
AlipaySDK.framework    libcrypto.a

導(dǎo)入系統(tǒng)庫

SystemConfiguration.framework

設(shè)置一下search paths

build setting ->搜索search path,,然后你懂的

完成后,,編譯一下,看有沒有錯(cuò),,有錯(cuò)沒錯(cuò),,還是下一步吧。

1.3 對接

支付寶對節(jié)前,,你還是需要從服務(wù)器拿到一下一堆東西

支付寶接口文檔中寫了3p參數(shù)列表,,--! 總結(jié)下我用的到,,或者說是Demo中提到的,,別的就超出范圍了
合作者身份ID     alipayPartner = @"2088一串?dāng)?shù)字";
接口名稱             alipaySeller = @"[email protected]";
簽名                aliPayPrivateKey = @"很長很長的私鑰";
//公鑰            alipayRSA_PUBLIC=@"一般長";  客戶端不用服務(wù)器都給我了--~!
服務(wù)器異步通知頁面路徑  alipayNotifServerURL = @"一個(gè)網(wǎng)址"; //支付結(jié)果,,支付寶會(huì)通知服務(wù)器

其他一些參數(shù)(與購買產(chǎn)品相關(guān),,設(shè)計(jì)到業(yè)務(wù)了,客戶端/服務(wù)器誰提供均可)直接貼order代碼了,,具體看我的Demo示例.

Order \*order = [[Order alloc] init];
                    order.partner = alipayPartner ;
                    order.seller = alipaySeller;
                    order.tradeNO = tn; //訂單ID(由商家自行制定)
                    order.productName = [NSString stringWithFormat:@"汽車服務(wù)充值-%@",@"支付"]; //商品標(biāo)題
                    order.productDescription = [NSString stringWithFormat:@"%@:支付寶移動(dòng)支付充值",@"xxxx"]; //商品描述
                    order.amount = _txtCNY.text; //商品價(jià)格
                    order.notifyURL =  alipayNotifServerURL; //回調(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 = URLScheme;

調(diào)用支付寶

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
                            NSLog(@"reslut = %@",resultDic);
                            if ([resultDic[@"resultStatus"] intValue]==9000) {
                                //進(jìn)入充值列表頁面
                                NSLog(@"支付成功");
                            }
                            else{
                                NSString *resultMes = resultDic[@"memo"];
                                resultMes = (resultMes.length<=0?@"支付失敗":resultMes);
                                NSLog(@"%@",resultMes);
                            }
    }];

你可能會(huì)發(fā)現(xiàn)回調(diào)不行->設(shè)置回調(diào)shema

//上面支付時(shí)已經(jīng)傳給了支付寶客戶端回調(diào)shema名稱
 NSString *appScheme = URLScheme;
 //具體設(shè)置shema方法此處就不再累贅,,這兒需要處理來自支付寶shema回調(diào),才能完成上面方法的block回調(diào)
 在APPDelegate -
  - (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
         //跳轉(zhuǎn)支付寶錢包進(jìn)行支付,,處理支付結(jié)果
    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
        NSLog(@"result = %@",resultDic);
    }];

    return YES;
}

二,、銀聯(lián)

2.1 請去看銀聯(lián)文檔和demo
2.2 導(dǎo)入對應(yīng)的庫
SDK說明
SDK分為以下兩個(gè)版本:
①    支持純無卡交易靜態(tài)庫,以下簡稱UPPayPlugin,,包含文件:
UPPayPlugin.h
UPPayPluginDelegate.h
libUPPayPlugin.a
②    支持純無卡交易和VIPOS音頻口支付靜態(tài)庫,以下簡稱UPPayPluginPro,,包含文件:
UPPayPluginPro.h
UPPayPluginDelegate.h
libUPPayPluginPro.a

大概這兩個(gè)庫就是上述那樣(嗯,裝懂了),具體問商務(wù)/后者后臺(tái),,我們只需要知道

②需要將.m改成.mm (應(yīng)該是用c++封裝的音頻...??)
添加SDK包
a)    根據(jù)商戶選擇的SDK版本,,將sdk/inc目錄和sdk/libs目錄下對應(yīng)版本的三個(gè)文件添加到UPPayDemo工程中;
b)    如果你選擇的是UPPayPlugin版本,,添加QuartzCore.framework,、Security.framework到工程中;
c)    如果你選擇的是UPPayPluginPro版本,,添加QuartzCore.framework,、AudioToolbox.framework, CoreAudio.framework、 MediaPlayer.framework, AVFoundation.framework和Security.framework到工程中,;
?? d)    在工程的Build Settings中找到Other Linker Flags中添加-ObjC宏;

導(dǎo)入到工程,,讓服務(wù)器準(zhǔn)備一下交易流水號信息 (什么他們不懂,,讓他們?nèi)タ次臋n 銀 聯(lián)),休息一下,喝杯什么好了,?

2.3 對接

咱們的服務(wù)器也是挺給力的,,一盞茶的功夫,就將交易流水號信息 給準(zhǔn)備好了,,嗯不錯(cuò),,速度對接一下。

 + (BOOL)startPay:(NSString*)tn 
mode:(NSString*)mode 
viewController:(UIViewController*)viewController 
delegate:(id<UPPayPluginDelegate>)delegate;
-------------參數(shù)說明(必填)-------------------
tn                 NSString*                   交易流水號信息,,銀聯(lián)后臺(tái)生成,,通過商戶后臺(tái)返回到客戶端并傳入支付控件; 
mode            NSString*                 接入模式設(shè)定,,兩個(gè)值:@"00":代表接入生產(chǎn)環(huán)境(正式版本需要),;@"01":代表接入開發(fā)測試環(huán)境(測試版本需要);
viewController    UIViewController*          商戶應(yīng)用程序調(diào)用銀聯(lián)手機(jī)支付的當(dāng)前UIViewController,;
delegate        id<UPPayPluginDelegate>     實(shí)現(xiàn)UPPayPluginDelegate方法的UIViewController,;

嗯,這些都是文檔中的,,請仔細(xì)看看[上線的時(shí)候一定藥修改mode模式],。
mode在測試環(huán)境下可以銀聯(lián)給的測試號 tn=@"01" 測試環(huán)境

測試使用卡號、手機(jī)號信息(此類信息僅供測試,不會(huì)發(fā)生正式交易)招商銀行預(yù)付費(fèi)卡:
卡號:6226 4401 2345 6785
密碼:111101
[這個(gè)居然無效]
再來一個(gè):??
銀行卡號:6216261000000000018
身份證號:341126197709218366
手 機(jī) 號 :13552535506
驗(yàn) 證 碼 :123456 【要點(diǎn)擊獲取驗(yàn)證碼,,不然提交會(huì)報(bào)錯(cuò)】

viewcontroller需要干這些事情

*引入頭文件  \#import "UPPayPluginPro.h"
*調(diào)用接口
        [UPPayPluginPro startPay:tn mode:self.tnMode viewController:self delegate:self];
*實(shí)現(xiàn)對應(yīng)代理方法
        \#pragma mark UPPayPluginResult
        - (void)UPPayPluginResult:(NSString \*)result
        {
            NSString\* msg = [NSString stringWithFormat:@"%@", result];
            NSLog(@"msg%@",msg);
            if ([result isEqualToString:@"msgcancel"]) {
                NSLog(@"取消銀聯(lián)支付...");
            }
            else if([result containsString:@"success"]){
                NSLog(@"支付成功");
            }
      }

微信支付

微信支付工作之前的流程

微信支付文檔
微信sdk

總體來說微信支付需要審核的比較麻煩,,我也沒有去弄一個(gè)號親自測試一下,按照文檔demo去走一般不會(huì)出什么問題,。

小記

可能遇到銀聯(lián)c++編譯問題,,把對應(yīng)的viewcontroller切換成.mm,編譯看看。若有CreateRSADataSigner arm64的,,請將支付寶給的DataSigner改成.mm即可,。
其他可以參照我的demo

@lp_馬建成

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多