[置顶] iOS中 支付宝钱包详解/第三方支付
[置顶] iOS中 支付宝钱包详解/第三方支付 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博!
一、在app中成功完成支付宝支付的过程
1、申请支付宝钱包。参考网址:
//合作身份者id,以2088开头的16位纯数字
#define PartnerID @""
//收款支付宝账号
#define SellerID @""
//安全校验码(MD5)密钥,以数字和字母组成的32位字符
#define MD5_KEY @""
//商户私钥,自助生成
#define PartnerPrivKey
//支付宝公钥(老板给你的)
#define AlipayPubKey @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB"
只有这几个参数备齐之后,demo才可以完成支付,所以接下来第二步
@interface Product :NSObject{
@private
float _price;
NSString *_subject;
NSString *_body;
NSString *_orderId;
}
@property (nonatomic,assign) float price;
@property (nonatomic,retain) NSString *subject;
@property (nonatomic,retain) NSString *body;
@property (nonatomic,retain) NSString *orderId;
@end
这个就是所支付产品需要的几个必要的字段。在开发文档中可以看到需要好多参数,但在真正用时,只需要特别注意这几个就行。demo中有自动拼接的方法,到时候直接调用就行。
2、app和支付宝客户端之间的跳转
NSString *appScheme = @"AlipaySdkDemo"; //应用跳转的URL
*这里要和plist文件中URL types 下面的字段保持一致
3、支付结果的入口
首先是WAP端的入口,在ViewController.m文件中可以找到,这里返回支付结果,比较简单,不多说。
独立端的入口,在AppDelegate里面,我试着在viewcontroller中找这个,但最后没找到。最后只能设置一个观察者,把支付结果发送过来再进行处理。
三、总结
第一次接触支付方面的东西,刚开始很迷茫,不明白其中财务方面是怎么对上号的。
那些都是在后台进行处理的,iOS开发时需要做的,就是完成这个支付流程。
==================================具体看下面流程====================================
第一步:引入框架
每日更新关注:http://weibo.com/hanjunqiang 新浪微博
第二步:注意框架及拉进相关文件
每日更新关注:http://weibo.com/hanjunqiang 新浪微博
第三步:上代码
直接建立根视图:
- #import "RootViewController.h"
- #import <AlipaySDK/AlipaySDK.h>
- #import "Order.h"
- #import "DataSigner.h"
- @interface RootViewController ()
- @end
- @implementation RootViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- UIButton *button = [UIButton buttonWithType:(UIButtonTypeSystem)];
- [button addTarget:self action:@selector(buttonAction :) forControlEvents:(UIControlEventTouchUpInside)];
- button.frame = CGRectMake(100, 200, 100, 100);
- [button setTitle:@"支付" forState:(UIControlStateNormal)];
- [button setBackgroundColor:[UIColor yellowColor]];
- [self.view addSubview:button];
- self.view.backgroundColor = [UIColor greenColor];
- }
每日更新关注:http://weibo.com/hanjunqiang 新浪微博
点击事件:
- - (void)buttonAction : (UIButton *)sender
- {
- // NSLog(@"支付");
- /*
- *点击获取prodcut实例并初始化订单信息
- */
- // Product *product = [self.productList objectAtIndex:indexPath.row];
- /*
- *商户的唯一的parnter和seller。
- *签约后,支付宝会为每个商户分配一个唯一的 parnter 和 seller。
- */
- /*============================================================================*/
- /*=======================需要填写商户app申请的===================================*/
- /*============================================================================*/
- // 16位的纯数字
- NSString *partner = @"2088。。公司唯一ID";
- // 收款账户
- NSString *seller = @"收款账号";
- NSString *privateKey = @"密钥";
- /*============================================================================*/
- /*============================================================================*/
- /*============================================================================*/
- //partner和seller获取失败,提示
- if ([partner length] == 0 ||
- [seller length] == 0 ||
- [privateKey length] == 0)
- {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
- message:@"缺少partner或者seller或者私钥。"
- delegate:self
- cancelButtonTitle:@"确定"
- otherButtonTitles:nil];
- [alert show];
- return;
- }
- /*
- *生成订单信息及签名
- */
- //将商品信息赋予AlixPayOrder的成员变量
- Order *order = [[Order alloc] init];
- order.partner = partner;
- order.seller = seller;
- order.tradeNO = @"123456"; //订单ID(由商家自行制定)
- order.productName = @"太空杯"; //商品标题
- order.productDescription = @"耐摔的太空杯"; //商品描述
- order.amount = [NSString stringWithFormat:@"%.2f",0.01]; //商品价格
- order.notifyURL = @"http://www.lanou3g.com"; //回调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 = @"xiaohange";
- //将商品信息拼接成字符串
- 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);
- }];
- }
- }
- //选中商品调用支付宝极简支付
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- {
- }
每日更新关注:http://weibo.com/hanjunqiang 新浪微博
最终效果:
每日更新关注:http://weibo.com/hanjunqiang 新浪微博
[置顶] iOS中 支付宝钱包详解/第三方支付相关推荐
- iOS中 支付宝钱包详解/第三方支付 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! iOS开发者交流QQ群: 446310206 一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包.参考网址 ...
- iOS中 支付宝钱包详解/第三方支付
版权声明:本文为博主原创文章,未经博主允许不得转载. 每日更新关注:http://weibo.com/hanjunqiang 新浪微博! 一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包. ...
- iOS中 支付宝钱包详解
一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包.参考网址: https://b.alipay.com/order/productDetail.htm?productId=201411030 ...
- iOS中ImageIO框架详解与应用分析
2019独角兽企业重金招聘Python工程师标准>>> iOS中ImageIO框架详解与应用分析 一.引言 ImageIO框架提供了读取与写入图片数据的基本方法,使用它可以直接获取到 ...
- 详解第三方支付之无卡通道
今天开辟名为[详解第三方支付]的新系列,以文为主.辅之以图的方式讲解第三方支付.新系列第一篇文章,详解第三方支付之无卡通道. 何谓无卡支付?无卡支付是指: 支付无需物理卡片通过受理设备的读取: 支付无 ...
- 天猫送给这些商家“首页置顶”丨 24张PPT详解天猫消费电子2018年商家策略
5月 8日,2018天猫TES(天猫消费电子生态峰会)在杭州举行,这也是天猫消费电子事业部今年3月正式成立以来,首次全体亮相. 在此次大会上,天猫消费电子事业部总经理杨光(花名:吹雪)宣布,要建立全球 ...
- [置顶] iOS中让省略号垂直居中
在显示等待框时,一般要求在提示信息后面加个省略号,但中文输入法下输入的省略号是在底部对齐,但中 文的习惯是省略号垂直居中对齐,最后找到下面这个方法来显示垂直居中的省略号: 中文和英文输入法下一样: o ...
- iOS中block的详解weakSelf、strongSelf-转自唐巧
1 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: __weak typeof(self) weakSelf ...
- IOS 中 pch 文件详解
在 Xcode6 之前,创建一个新工程会在 Supporting files 文件夹下面自动创建一个"工程名-Prefix.pch"文件,也是一个头文件,pch 头文件的内容能被项 ...
最新文章
- mysql2008 limit,在SQL Server中实现 Limit m, n 的功能
- 测试驱动开发 测试前移_测试驱动的开发可能看起来是工作的两倍-但无论如何您都应该这样做...
- linux启动时间极限优化,Linux启动时间的极限优化
- Xposed注入实现分析及免重启定制
- java mysql 清空表_MySQL 删除数据表
- HDU - 4856 Tunnels(哈密顿路径+状压dp)
- codeforces gym-101741 Elevator 动态规划、单调队列
- 利用xlwt写excel并进行单元格的合并
- 23-Ubuntu-文件和目录命令-查看文件内容-more 和 cat
- 微软全球执行副总裁沈向洋:人工智能的机遇和挑战
- xlinux中实现mdev
- macOS Big Sur无法完成安装 Big Sur为什么安装不了?
- Struts2学习第4天--拦截器
- C3927 “->“: 非函数声明符后不允许尾随返回类型等错误
- 用 dfuse 交易预测执行工具优先赢得 Gas 竞价
- 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上)
- 地鼠君黑盒测试--小白功能测试避雷经验分享
- suse日志服务器配置
- 操作系统之文件管理(二) ※
- github数据怎么Python爬取
热门文章
- kakao登录接入V2版本记录
- linux系统下监控录像软件,Linux系统资源监控-Linux系统资源监控工具(LinuxSysMonitor)下载-西西软件下载...
- vcf、plink文件格式互转
- 微软全球最大人工智能和物联网实验室落户上海张江
- 烟尘识别 python
- Tx2板子ubuntu系统ARM安装中文输入法
- 兄弟2560打印机提示DRUM!
- python源代码程序编译后的文件扩展名是什么_Python源代码程序编译后的文件扩展名为_________。...
- 2017年度全国出差地图!
- Lost executor 原因分析及解决方案-记录