iOS 支付宝支付
来源:互联网 发布:sketch有没有windows版 编辑:程序博客网 时间:2024/05/19 10:07
比起微信支付来,支付宝支付就简单的多了。
同样的,我们也需要先去支付宝开放平台开通应用的支付权限,取得pid,seller,和privateKey。注意啊privateKey是很长的一串:
#define ZHI_PARTNER @"xxxxxxx"//pid
#define ZHI_SELLER @"xxxxxxxx"
#define ZHI_PRIVATEKEY @"MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAO1gIWd7eSYg0anCGkCEEQns8IiWyzrE0mhhrdpDcePsswVOdWVpogAd5Bv7IdWV1ku78aQdMq+xEFMX6ouSO/zd1/Tr85GurnSWOUHpU6+dwMDrqe+UsTjI4GX2qHkV9FPCf40hn0ICbZZ4z6W43vq+tN/J8jxfd50kqpSeb6UvAgMBAAECgYEAsuQViJVHEfL9zz+W5TQiWyaTh3yNIHcgUsX6bVkSxcCmkcM1Of5HtmrQdD3om7xWSbEURKg0gK+iK90ER7cnONCQjQQP5WlFWDd5dr8sOI7090llNIdliM1L2ukSadek6gKIviREmaLY2UhjoQfSRcR7QbD4u879ZzI2AdmrkaECQQD8+vlTmQe5DGErrKNdocGlSfgcbTjmCdTVjVKpKoGotaz9u69SxroQNeH/3vg5LmZKgWX93m5sMHmaYzYUKWUJAkEA8DV5IUJIukVRvtyIhiTaiaYd0A22YOUHR8GKGP/vw/9wQRNvm29FOFV6D7HsEDO1IAfHuyrdqC1IrMMFLs2+dwJBAJUay4dFQ/MCY+dc+nC+XScxwMXobkfPdZ1kjVrdjcxFQC/QxlYwgQv65jhsT7tMKMgzGk0WI9kqfRHM9dvORhkCQAfcqC9HfRvjou5NR4akdCanMjiaCksXk+psUjnJPq66kJEAstlyheB3I7yZxTEukBIRTx84IvMbMFK/O08x2rcCQGuPSVIu6IWnZjxs4jWAH4AAWVdc4NEyG3fuQZHAoxJvTsrsPRATDv63vTZSo。。。。。。此处省略"
然后在工程里导入支付宝的库文件
同时,在build phrase里面添加系统库文件,这个文档里面有,我就不写了。
接着去target---info里面添加url types。
剩下的就是写代码了,特简单的几句话,
Order *order = [[Order alloc] init];
order.partner = ZHI_PARTNER;//必填
order.seller = ZHI_SELLER;//必填
order.tradeNO = self.orderID; //订单ID(由商家自行制定)
order.productName = infoDict[@"data"][@"productName"]; //商品标题,服务器返回
order.productDescription = infoDict[@"data"][@"productName"]; //商品描述,服务器返回
order.amount = [NSString stringWithFormat:@"%@",infoDict[@"data"][@"amount"]]; //商品价格,服务器返回
order.notifyURL = infoDict[@"data"][@"notifyURL"]; //回调URL,服务器返回
order.service = @"mobile.securitypay.pay";//接口名称,固定值
order.paymentType = @"1";
order.inputCharset = @"utf-8";
order.itBPay = @"30m";
//应用注册scheme,在AlixPayDemo-Info.plist定义URL types
NSString *appScheme = @"alisdk";
//将商品信息拼接成字符串
NSString *orderSpec = [order description];
NSLog(@"orderSpec = %@",orderSpec);
//获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
id<DataSigner> signer = CreateRSADataSigner(ZHI_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[@"resultStatus"] integerValue] == 9000) {
if (SHAREDAPP.paySuBlock) {//前一个页面刷新
SHAREDAPP.paySuBlock();
}
self.hadPayed = YES;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息" message:@"支付成功" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];
}else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息" message:@"支付失败" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];
}
}];
}
}
};
这样就完成了
- iOS 支付宝支付
- ios 支付宝支付
- iOS 支付宝支付
- IOS支付宝支付
- iOS 支付宝支付
- 支付宝支付iOS
- iOS 支付宝支付
- ios 支付宝支付
- iOS支付宝支付
- iOS支付宝支付
- iOS- 支付宝支付
- ios支付宝支付
- iOS 支付宝支付
- 支付宝支付iOS
- iOS 支付宝支付
- iOS 第三方支付 支付宝支付
- 微信支付,支付宝支付 iOS
- iOS支付宝支付步骤
- 群英传学习笔记
- Android实现渐变title栏
- TeamViewer连接密码问题
- linux重启和关闭系统命令
- Java关于排序的介绍1-简单排序
- iOS 支付宝支付
- 回调函数的作用
- leetcode 240. Search a 2D Matrix II
- 解决java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader couldn't find "libDatabaseOp.so"
- javascript和 jQuery中的AJAX,以及AJAX各种跨域技术
- android 键盘按键监听
- x264代码剖析(一):图文详解x264在Windows平台上的搭建
- Mybatis一级缓存
- AAA Mybatis一级缓存 简单入门(上篇)