文档章节

ios支付宝集成

街角d咖啡店
 街角d咖啡店
发布于 2015/01/07 17:39
字数 345
阅读 166
收藏 0

1添加支付宝源文件和库文件AlipayOrder.h    AlipayOrder.m    AlipayResult.h    AlipayResult.m  AlixLibService.h   PartnerConfig.h    AlipayRsaLib.a    Alixpay.bundle   AlixPaylib_arc.a    libcrypto.a   libssl.a    

2添加json类库和demo中的rsa签名    json文件夹和RSA文件夹

3添加相关类库  CoreGraphics.framework  Foundation.framework UIKit.framework  CFNetwork.framework  SystemConfiguration.framework 

4在delegate文件中加入支付回调函数

//独立客户端回调函数

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

    

    [self parse:url application:application];

    return YES;

}


- (void)parse:(NSURL *)url application:(UIApplication *)application {

    

    //结果处理

    AlixPayResult* result = [self handleOpenURL:url];

    

    if (result)

    {

        

        if (result.statusCode == 9000)

        {

            /*

             *用公钥验证签名 严格验证请使用result.resultStringresult.signString验签

             */

            

            //交易成功

            NSString* key = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB";

            id<DataVerifier> verifier;

            verifier = CreateRSADataVerifier(key);

            

            if ([verifier verifyString:result.resultString withSign:result.signString])

            {

                //验证签名成功,交易结果无篡改

                UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示"

                                                                     message:result.statusMessage

                                                                    delegate:nil

                                                           cancelButtonTitle:@"确定"

                                                           otherButtonTitles:nil];

                [alertView show];

                alertView.delegate = self;

                

                

            //验签错误

            else {

                UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示"

                                                                     message:@"签名错误"

                                                                    delegate:nil

                                                           cancelButtonTitle:@"确定"

                                                           otherButtonTitles:nil];

                [alertView show];

                

            }

        }

        //如果支付失败,可以通过result.statusCode查询错误码

        else {

            UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示"

                                                                 message:result.statusMessage

                                                                delegate:nil

                                                       cancelButtonTitle:@"确定"

                                                       otherButtonTitles:nil];

            [alertView show];

            

        }

        

        

    }

    else

    {

        //交易失败

    }

    

    NSLog(@"1111%i",result.statusCode);

    NSLog(@"222%@",result.description);

    NSLog(@"333%@",result);

    NSLog(@"444%@",result.resultString);

    

    

}


- (AlixPayResult *)resultFromURL:(NSURL *)url {

    NSString * query = [[url query] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

#if ! __has_feature(objc_arc)

    return [[[AlixPayResult alloc] initWithString:query] autorelease];

#else

    return [[AlixPayResult alloc] initWithString:query];

#endif

}


- (AlixPayResult *)handleOpenURL:(NSURL *)url {

    AlixPayResult * result = nil;

    

    if (url != nil && [[url host] compare:@"safepay"] == 0) {

        result = [self resultFromURL:url];

    }

    

    return result;

}

5设置url 在target中的info中,添加URL Types

© 著作权归作者所有

街角d咖啡店
粉丝 4
博文 26
码字总数 7866
作品 0
深圳
私信 提问
Phonegap各类商业插件

【Phonegap商业插件服务】[目前插件已经支持到Phonegap最新版本] 1.phonegap-百度社会化分享-andriod插件 v2.0 【该插件支持微信分享和朋友圈分享,qq好友分享,微博分享】 2.phonegap百度社...

夜澜小雨
2015/07/15
1K
0
React Native 原生模块封装:支付宝示例

React Native本身已经提供很多可用的模块和组件,有一部分我们需要的模块和组件仍然无法直接提供,需要借助原生的代码来提供。封装原生模块和视图导出使用,也可以让React Native拥有android...

qiushijie
04/03
0
0
iOS 开发之一些著名开发者博客

国内 王巍 王巍目前在日本横滨任职于 LINE。工作内容主要进行 Unity3D 开发,8小时之外经常进行 iOS/Mac 开发。他的陈列柜中已有多款应用,其中番茄工作法工具非常棒。 博客 池建强 池建强,...

maskmale
2018/02/25
0
0
iOS常用的三方库

UI相关:(转载http://www.jianshu.com/p/be0401e35e06) 上拉下拉刷新控件: 链接:MJRefresh 动态启动图: 链接:YFStartView MBProgressHUD: 链接:MBProgressHUD 一个效果很好的弹出下拉框:...

oschina6k
2016/05/11
425
1
iOS集成支付宝支付时提示外部商户不能购买自己产品

iOS集成支付宝支付时提示外部商户不能购买自己产品,请问这个问题是因为登录的支付宝账号 和 在支付宝注册商户账号相同吗?

Winzlee
2015/08/26
939
2

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
800
11
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
15
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部