ios支付宝支付

1.首先下载支付宝SDK    AlipaySDK.bundleAlipaySDK.framework(去支付宝SDK官网下载最新SDK,具体以支付宝SDK介绍为准)

2.添加依赖库

其中,需要注意的是:

如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd;

如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib


3.创建prefix header filePCH文件,添加#import <Foundation/Foundation.h>,在Build Settings中的prefix header设置pch文件路径


4.在Build SettingsHeader Search Paths添加头文件引用路径,[文件路径]/AlipaySDK/


5.在需要调用AlipaySDK的文件中,增加头文件引用

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

6.生成订单信息及签名

//将商品信息赋予AlixPayOrder的成员变量
Order *order = [[Order alloc] init];
order.partner = PartnerID; // 商户ID
order.seller = SellerID; // 账号ID
order.tradeNO = @"20150923"; //订单ID(由商家自行制定)
order.productName = @"iPhone6s"; //商品标题
order.productDescription = @"新年打折"; //商品描述
order.amount = @"0.01"; //商品价格(单位:元)
order.notifyURL =  @"http://www.chaosky.me"; //回调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
NSString *appScheme = @"AliPayDemo";

//将商品信息拼接成字符串
NSString *orderSpec = [order description];
NSLog(@"orderSpec = %@",orderSpec);

//获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
id<DataSigner> signer = CreateRSADataSigner(PartnerPrivKey);
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);
    }];
}

7.Xcode设置URL scheme

    URL Scheme值为代码中对应的值,必须一致


8.APPDelegate.m中处理支付宝返回的url

  添加头文件  #import <AlipaySDk/AlipaySDk.h>

  然后添加下面代码

 (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    //如果极简开发包不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给开发包
    if ([url.host isEqualToString:@"safepay"]) {
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary * resultDic) {
    //【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】
            NSLog(@"result = %@",resultDic);
        }];
    }
    if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回authCode

        [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary * resultDic) {
            //【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】
            NSLog(@"result = %@",resultDic);
        }];
    }
    return YES;
}

大  功  告  成

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值