iOS集成支付宝支付

本文由本人原创发表于博客园,转载请注明出处

http://www.cnblogs.com/wangqw/p/5074907.html

 

一、 开发前准备

iOS 支付宝SDK下载地址:(内含iOS Android 服务端demo及SDK)

http://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1

 

二、 集成支付宝

1、解压支付宝钱包支付接口开发包2.0标准版(iOS 15.0.2).zip(忽略版本号)

 

2、创建个文件夹,找到如下文件,放到文件夹里。便于将文件统一拷入项目

 

3、创建项目并将支付宝SDK添加进项目(项目创建不再演示)

4、导入系统库(不导入编译不通过会报错)

UIKit.framework

CoreGraphics.framework

Foundation.framework

CoreTelephony.framework

CoreText.framework

libz.tbd

QuartzCore.framework

SystemConfiguration.framework

libc++.tbd

CFNetwork.framework

CoreMotion.framework

5、配置SDK路径

6、应用注册(支付宝支付要用)

7、调用支付宝支付

#import <AlipaySDK/AlipaySDK.h>
#import "Order.h"
#import "DataSigner.h"
#import "APAuthV2Info.h"

 

#pragma mark -- 支付宝支付 --
- (void) aliPay{
    
    /*============================================================================*/
    /*=======================需要填写商户app申请的===================================*/
    /*============================================================================*/
    NSString *partner = @" ";
    NSString *seller = @" ";
    NSString *privateKey = @" ";
    /*============================================================================*/
    /*============================================================================*/
    /*============================================================================*/
    
    /*
     *生成订单信息及签名
     */
    //将商品信息赋予AlixPayOrder的成员变量
    Order *order = [[Order alloc] init];
    order.partner = partner;
    order.seller = seller;
    order.tradeNO = @"11111"; //订单ID(由商家自行制定)
    order.productName = @"支付宝充值测试"; //商品标题
    order.productDescription = @"支付宝充值测试"; //商品描述
    order.amount = @"10"; //商品价格
    order.notifyURL =  @"https://www.taobao.com"; //回调URL,具体回调URL由服务端提供(淘宝网地址乱写的)
    
    //固定用法
    order.service = @"mobile.securitypay.pay";
    order.paymentType = @"1";
    order.inputCharset = @"utf-8";
    order.itBPay = @"30m";
    order.showUrl = @"m.alipay.com";
    
    //应用注册scheme,在Info.plist定义URL types
    NSString *appScheme = @"Pay";
    
    //将商品信息拼接成字符串
    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);
            
            if([[resultDic valueForKey:@"resultStatus"] integerValue] == 6001){
                NSLog(@"您取消了支付");
            }
            else if ([[resultDic valueForKey:@"resultStatus"] integerValue] == 9000){
                
            }
            
        }];
        
        
    }
    
}

 

posted @ 2015-12-25 09:08  王权伟  阅读(444)  评论(0编辑  收藏  举报