支付宝快速集成
2016-01-13 19:53
323 查看
摘要: 支付宝快速集成步骤,以及遇到“ rsa_private read error : private key is NULL”问题
1. 将IntegratedAlipay(GitHub上下载)文件夹导入工程中,记得选copy;
2. 点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search” 搜索,对“Header Search Paths”增加头文件路径:“$(SRCROOT)/项目名称/IntegratedAlipay/AlipayFiles”(注意:不包括引号)
3. 点击项目名称,点击“Build Phases”选项卡,在“Link Binary with Librarles” 选项中,新增“AlipaySDK.framework”和“SystemConfiguration.framework” 两个系统库文件。
4. 在AlipayHeader.h文件中设置kPartnerID、kSellerAccount、kNotifyURL、kAppScheme和kPrivateKey的值(所有的值在支付宝回复的邮件里面:注意,建议除appScheme以外的字段都从服务器请求)
5. 点击项目名称,点击“Info”选项卡,在URL types里面添加一项,Identifier可以不填,URL schemes必须和appScheme的值相同,用于支付宝处理回到应用的事件;
6. 在需要用的地方导入“AlipayHeader.h”,并使用“[AlipayRequestConfig alipayWithPartner:...”方法进行支付;
7. 在AppDelegate中处理事件回调:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
//如果极简 SDK 不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给 SDK if ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回 authCode
[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}
弄完一切之后可能出现“ rsa_private read error : private key is NULL”问题
两中解决方法
1解决方法:
1)在RSADataSigner.m文件中 搜索代码 [result appendString:@"-----BEGIN PRIVATE KEY-----\n"]; 将其改成 [result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];
2)在RSADataSigner.m文件中 搜索代码 [result appendString:@"\n-----END PRIVATE KEY-----"]; 将其改成 [result appendString:@"\n-----END RSA PRIVATE KEY-----"];
2解决方法: (最大可能的解决方法)
A、将私钥转成PKCS8替换一下原私钥即可
打开终端:
1、生成私钥pem, 执行命令 openssl genrsa -out rsa_private_key.pem 1024
2、生成公钥,执行命令 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3、 将RSA私钥转换成PKCS8格式,命令执行 openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt ( PHP服务端语言读取私钥不需要PKCS8转换)
将生成的private key复制到AliPayHeader头文件的私钥中
#define kPrivateKey @""
1. 将IntegratedAlipay(GitHub上下载)文件夹导入工程中,记得选copy;
2. 点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search” 搜索,对“Header Search Paths”增加头文件路径:“$(SRCROOT)/项目名称/IntegratedAlipay/AlipayFiles”(注意:不包括引号)
3. 点击项目名称,点击“Build Phases”选项卡,在“Link Binary with Librarles” 选项中,新增“AlipaySDK.framework”和“SystemConfiguration.framework” 两个系统库文件。
4. 在AlipayHeader.h文件中设置kPartnerID、kSellerAccount、kNotifyURL、kAppScheme和kPrivateKey的值(所有的值在支付宝回复的邮件里面:注意,建议除appScheme以外的字段都从服务器请求)
5. 点击项目名称,点击“Info”选项卡,在URL types里面添加一项,Identifier可以不填,URL schemes必须和appScheme的值相同,用于支付宝处理回到应用的事件;
6. 在需要用的地方导入“AlipayHeader.h”,并使用“[AlipayRequestConfig alipayWithPartner:...”方法进行支付;
7. 在AppDelegate中处理事件回调:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
//如果极简 SDK 不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给 SDK if ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回 authCode
[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}
弄完一切之后可能出现“ rsa_private read error : private key is NULL”问题
两中解决方法
1解决方法:
1)在RSADataSigner.m文件中 搜索代码 [result appendString:@"-----BEGIN PRIVATE KEY-----\n"]; 将其改成 [result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];
2)在RSADataSigner.m文件中 搜索代码 [result appendString:@"\n-----END PRIVATE KEY-----"]; 将其改成 [result appendString:@"\n-----END RSA PRIVATE KEY-----"];
2解决方法: (最大可能的解决方法)
A、将私钥转成PKCS8替换一下原私钥即可
打开终端:
1、生成私钥pem, 执行命令 openssl genrsa -out rsa_private_key.pem 1024
2、生成公钥,执行命令 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3、 将RSA私钥转换成PKCS8格式,命令执行 openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt ( PHP服务端语言读取私钥不需要PKCS8转换)
将生成的private key复制到AliPayHeader头文件的私钥中
#define kPrivateKey @""
相关文章推荐
- 跟我学习dubbo-Dubbo监控中心的介绍与简易监控中心的安装(7)
- 判断二叉树是否为对称二叉树
- EAS表字段简体转繁体。
- CentOS搭建FTP
- Jar包冲突解决方法
- Handler计时器
- Android短信监听(二)——利用ContentObserver实现短信监听
- Hibernate里面session.get()和session.load()的区别
- 软件测试_BadBoy自动化测试工具9_查看回放结果
- Debian 成为主流 Linux 操作系统的七个原因
- hdu 1879 再续畅通工程(Prim)
- Android webView使用详解
- 深度学习之江湖~那些大神们,不相信只有我一个人爱八卦
- LocalSessionFactoryBean加载Hibernate 映射文件(hbm.xml)的三种方式及区别
- 黑马程序员@面向对象之多态和接口
- oracle----sql----查询---为例---计算
- GNS3 模拟icmp目标不可达
- 安卓SocketIO+Node.js实现好友与好友间的实时聊天
- Handler消息
- you must restart adb and eclipse的相关解决办法