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

分享

支付寶iOS SDK 的簡(jiǎn)單使用

 泡泡糖813 2016-03-15

(點(diǎn)擊上方公眾號(hào),,可快速關(guān)注我們)


來源:  Vinc   

鏈接:http://www.jianshu.com/p/ccfb86cd8f9f


一、去官網(wǎng)申請(qǐng)開通支付寶使用權(quán)限


二,、審核通過


1、seller ID:商家唯一標(biāo)識(shí)符


2,、partner ID:合作身份者 ID,,以2088開頭的16位純數(shù)字


3,、加密用到的文件(支付寶公鑰/自助生成的商家私鑰)


三、具體項(xiàng)目代碼(Demo)


準(zhǔn)備工作:解壓從支付寶網(wǎng)站上下載到的SDK壓縮包(藏的很深,具體網(wǎng)址是https://b.alipay.com/order/productDetail.htm?productId=2014110308141993&tabId=1#ps-tabinfo-hash,下載到的文件名是 WS_MOBILE_PAY_SDK_BASE.zip,,內(nèi)含Android 和 iOS 的 SDK),,找到WS_MOBILE_PAY_SDK_BASE –> 支付寶錢包支付接口開發(fā)包2.0標(biāo)準(zhǔn)版(20150724) –> DEMO –> 客戶端demo –> 支付寶錢包支付接口開發(fā)包2.0標(biāo)準(zhǔn)版(iOS 2.2.3).zip,解壓,。


位置藏的很好


1,、啟動(dòng)IDE(如Xcode),把iOS包中的以下文件拷貝到項(xiàng)目文件夾下,并導(dǎo)入到項(xiàng)目工程中,。


AlipaySDK.bundle AlipaySDK.framework AliSDKDemo文件夾下的Order.h AliSDKDemo文件夾下的Order.m AliSDKDemo文件夾下的Util文件夾 AliSDKDemo文件夾下的openssl文件夾 AliSDKDemo文件夾下的libcrypto.a AliSDKDemo文件夾下的libssl.a


2,、新建一個(gè)header file(.h)文件,,放入商家相關(guān)的宏


//  PartnerConfig.h

//  YuenAlipayDemo

//

//  Created by peikua on 15/8/17.

//  Copyright (c) 2015年 Ruan. All rights reserved.

//

 

#ifndef YuenAlipayDemo_PartnerConfig_h

#define YuenAlipayDemo_PartnerConfig_h

 

//合作身份者id,,以2088開頭的16位純數(shù)字

#define PartnerID      @'2088511933544308'

//收款支付寶賬號(hào)

#define SellerID       @'[email protected]'

//商戶私鑰,,自助生成

#define PartnerPrivKey @'MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAL0M8jaJCm9bMb7PjgI0wR9 mpzWTcNTwTyYBEXmrJg3MjRVluUezDjQhQBSrgaMTeM40cz 1Nt/f1OlS/vB9PzGSF MDty6zS0NQEEvVjUUge7PsOtbPDIEmuPppKIj4wETfavaZt7j4/kVuABDC2P1DpPRP686dJsNTkSO5qrNAgMBAAECgYApxEVy9P3gMkagQFzAcgVEvwTLp7EQeV2U1IUFKHxzOKaX11z6C77UwoTP2HRoL/E5RSFc5 QBBn8L7NYHrgdAu4L5Kl048saM53QyXJviQs7lgxDSBbo EHDY9OJJsVRalpqKSirgBZmce/M4/tNhDxUfV5yXvxOC43JEr92UIQJBAPXbahDDMN D0MqG1y0zPyU5bJwopXsSLIxpqp4vRmHokMxlber5HGMgSSnVQ9x9j974G1RSamqV34xwnqPzIlUCQQDE2ZPgtKd9Te19kGpmmCs64iqlkUVabAuKI8wMyx4hGZx6/EpeufFiTpF3F3YDN37JOenBefLL9UIkrOrjXI6ZAkBmpX75FKV5DG3FwNph0r2QaxM/d3DvmzziOtOzS4WVJyYdUFO ANerQzWIs7OrgPjqXKf8YpRvf7dfyT1SshYpAkAhj0qDw6jOVwvHHWjWZtjv6AEHSxX8zXDGM0YlZDeVww0Hdp2jOqYpcWWhXRGUiNCHs TjREwdc4m8QPKmom/5AkAYGRw6TLB/XWfEvlGLMHMmbZWMXDBdBmlIN JK2oRjIoTryG35KlXzAHWcAq2xVhvCd6gJjz9arUmqewOLBMWn'

//支付寶公鑰

#define AlipayPubKey   @'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1 ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB'

//安全校驗(yàn)碼(MD5)密鑰,以數(shù)字和字母組成的32位字符

#define MD5_KEY        @'1g81z5tgu3o2yst4mqm6n838dxe5cw1a'

 

#endif


3,、在 ViewController.m 中導(dǎo)入必要的頭文件,,新建一個(gè)按鈕,,為按鈕添加“購(gòu)買Action”


//  ViewController.m

//  YuenAlipayDemo

//

//  Created by peikua on 15/8/17.

//  Copyright (c) 2015年 Ruan. All rights reserved.

//

#import 'ViewController.h'

#import 'MyUtility.h'

#import <AlipaySDK/AlipaySDK.h>

#import 'Order.h'

#import 'PartnerConfig.h'

 

@interface ViewController () <UITableViewDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

 

    UIButton *payButton = [MyUtility createButtonWithFrame:CGRectMake(0, kHeightOfScreen/2, kWidthOfScreen, 100) title:@'支付' backgroundImageName: nil selectImageName:nil target:self action:@selector(payAction)];

    payButton.backgroundColor = [UIColor colorWithRed:0.000 green:1.000 blue:0.870 alpha:1.000];

    [self.view addSubview:payButton];

}


4,、購(gòu)買Action


- (void)payAction

{

    /**

     *  1. 生成訂單信息

     */

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

    order.partner = PartnerID; //支付寶分配給商戶的ID

    order.seller = SellerID; //收款支付寶賬號(hào)(用于收款)

    order.tradeNO = [self generateTradeNO]; //訂單ID(由商家自行制定)

    NSLog(@'%@', order.tradeNO);

    order.productName = @'Mac'; //商品標(biāo)題

    order.productDescription = @'MacBook Air'; //商品描述

    order.amount = [NSString stringWithFormat:@'%.2f', 0.01]; //商品價(jià)格

    //???: 回調(diào) URL 沒有進(jìn)行調(diào)試

    order.notifyURL =  @'http://www.'; //回調(diào)URL(通知服務(wù)器端交易結(jié)果)(重要)

 

    //???: 接口名稱要如何修改?

    order.service = @'mobile.securitypay.pay'; //接口名稱, 固定值, 不可空

    order.paymentType = @'1'; //支付類型 默認(rèn)值為1(商品購(gòu)買), 不可空

    order.inputCharset = @'utf-8'; //參數(shù)編碼字符集: 商戶網(wǎng)站使用的編碼格式, 固定為utf-8, 不可空

    order.itBPay = @'30m'; //未付款交易的超時(shí)時(shí)間 取值范圍:1m-15d, 可空

 

    // 應(yīng)用注冊(cè)scheme,在當(dāng)前項(xiàng)目的Info.plist定義URL types

    NSString *appScheme = @'alisdkdemo';

    // 將訂單信息拼接成字符串

    NSString *orderSpec = [order description];

    NSLog(@'訂單信息orderSpec = %@', orderSpec);

    /**

     *  2. 簽名加密

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

     */

    id <DataSigner> signer = CreateRSADataSigner(PartnerPrivKey);

    NSString *signedString = [signer signString:orderSpec];

 

    /**

     *  3. 將簽名成功字符串格式化為訂單字符串,請(qǐng)嚴(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) {

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

        }];

    }

}

/**

*  產(chǎn)生隨機(jī)訂單號(hào)

*

*  @return 訂單號(hào)字符串

*/

- (NSString *)generateTradeNO

{

    static int kNumber = 15;

 

    NSString *sourceStr = @'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    NSMutableString *resultStr = [[NSMutableString alloc] init];

    /*

     支付寶官方給出的 Demo 中加入了這句生成種子的代碼, 但是 arc4random 似乎并不需要生成隨機(jī)種子(引用網(wǎng)上: arc4random() 是一個(gè)真正的偽隨機(jī)算法,,不需要生成隨機(jī)種子,因?yàn)榈谝淮握{(diào)用的時(shí)候就會(huì)自動(dòng)生成)

     srand((unsigned)time(0));

     */

 

    for (int i = 0; i < kNumber; i )

    {

        unsigned index =  arc4random() % [sourceStr length];

        NSString *oneStr = [sourceStr substringWithRange:NSMakeRange(index, 1)];

        [resultStr appendString:oneStr];

    }

    NSLog(@'隨機(jī)生成的訂單號(hào)->%@', resultStr);

    return resultStr;

}


5,、配置支付寶客戶端返回url處理方法:


在AppDelegate.m中,,重寫- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation方法


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

    //如果極簡(jiǎn)開發(fā)包不可用,會(huì)跳轉(zhuǎn)支付寶錢包進(jìn)行支付,需要將支付寶錢包的支付結(jié)果回傳給開 發(fā)包

    if ([url.host isEqualToString:@'safepay']) {

        [[AlipaySDK defaultService] processOrderWithPaymentResult:url

                                                  standbyCallback:^(NSDictionary *resultDic) {

                                                      NSLog(@'result = %@',resultDic);

                                                  }]; }

    if ([url.host isEqualToString:@'platformapi']){ //支付寶錢包快登授權(quán)返回 authCode

        [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {

            NSLog(@'result = %@',resultDic);

        }];

    }

    return YES;

}


四,、博主自己遇到的項(xiàng)目運(yùn)行報(bào)錯(cuò)的2個(gè)地方,另需要注意添加URL Schemes


1,、lexical or preprocessor issue 'penssl/asn1.h' file not found 支付寶提供的PDF中有解決辦法(自己犯二了沒有好好看文檔)



點(diǎn)擊項(xiàng)目名稱,點(diǎn)擊“Build Settings”選項(xiàng)卡,在搜索框中,以關(guān)鍵字“search” 搜索,對(duì)“Header Search Paths”增加頭文件路徑:$(SRCROOT)/項(xiàng)目名稱,。


2、報(bào)的一堆 Apple Mach-O Linker Error:點(diǎn)擊項(xiàng)目名稱,點(diǎn)擊“Build Phases”選項(xiàng)卡,在“Link Binary with Librarles” 選項(xiàng)中,新增“SystemConfiguration.framework” 系統(tǒng)庫(kù)文件


3,、配置URL Schemes:點(diǎn)擊項(xiàng)目名稱,點(diǎn)擊“Info”選項(xiàng)卡,在“URL Types”選項(xiàng)中,點(diǎn)擊“ ”, 在“URL Schemes”中輸入“alisdkdemo”,。“alisdkdemo”來自于文件 “APViewController.m”的 NSString *appScheme = @”alisdkdemo”


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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多