每日更新关注:http://weibo.com/hanjunqiang  新浪微博!

iOS开发者交流QQ群: 446310206

一、在app中成功完成支付宝支付的过程

1、申请支付宝钱包。参考网址:

 https://b.alipay.com/order/productDetail.htm?productId=2014110308141993&tabId=4#ps-tabinfo-hash
     这是使用支付宝支付的第一步,合作申请通过之后,会集成一个开发文件。即使不申请也可以下载,只是demo中会缺少几个必须的参数: 在demo中的 PartnerConfig.h 文件中可以看到

//合作身份者id,以2088开头的16位纯数字

#define PartnerID @""

//收款支付宝账号

#define SellerID  @""

//安全校验码(MD5)密钥,以数字和字母组成的32位字符

#define MD5_KEY @""

//商户私钥,自助生成

#define PartnerPrivKey

//支付宝公钥(老板给你的)

#define AlipayPubKey   @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB"

只有这几个参数备齐之后,demo才可以完成支付,所以接下来第二步

2、生成RSA
    这个需要在windows系统下生成,开发文档中也有生成的步骤。我是直接问后台要了这几个参数,所以这一步只能简单写到这。
 3、导入框架
      根据集成文件的开发文档,导入框架。可以参考demo。当四个参数都备齐之后可以先在demo上试一下能不能成功支付。然后再往自己的程序中导入。
每日更新关注:http://weibo.com/hanjunqiang  新浪微博
二、代码的使用
1、支付需要的参数
    在demo中的ViewController.h中可以看到有这么一段代码

@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:selfcancelButtonTitle:@"确定"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"; //回调URLorder.service = @"mobile.securitypay.pay";order.paymentType = @"1";order.inputCharset = @"utf-8";order.itBPay = @"30m";order.showUrl = @"m.alipay.com";//应用注册scheme,在AlixPayDemo-Info.plist定义URL typesNSString *appScheme = @"xiaohange";//将商品信息拼接成字符串NSString *orderSpec = [order description];NSLog(@"orderSpec = %@",orderSpec);//获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncodeid<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开发者交流QQ群: 446310206

iOS中 支付宝钱包详解/第三方支付 韩俊强的博客相关推荐

  1. [置顶] iOS中 支付宝钱包详解/第三方支付

    [置顶] iOS中 支付宝钱包详解/第三方支付 韩俊强的博客 每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 一.在app中成功完成支付宝支付的过程 1.申请支付 ...

  2. iOS中 支付宝钱包详解/第三方支付

    版权声明:本文为博主原创文章,未经博主允许不得转载. 每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包. ...

  3. iOS中 HeathKit框架学习 步数统计等 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博!iOS开发者交流QQ群: 446310206 HeathKit框架学习 本文结构 简介 用户数据安全及隐私 Heat ...

  4. iOS中 支付宝钱包详解

    一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包.参考网址: https://b.alipay.com/order/productDetail.htm?productId=201411030 ...

  5. HTML5中 HTML列表/块/布局 韩俊强的博客

    从简单到复杂HTML5详解:每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 1.HTML列表 1.有序 2.无序 3.有序star属性 4.有序无序列表 代码: ...

  6. iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客

    版权声明:本文为博主原创文章,未经博主允许不得转载. 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 简单介绍: [objc] view plaincopy //  ...

  7. iOS中 本地通知/本地通知详解 韩俊强的博客

    布局如下:(重点讲本地通知) iOS开发者交流QQ群: 446310206 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 Notification是智能手机应用编 ...

  8. iOS中 Realm的学习与使用 韩俊强的博客

    iOS开发者交流QQ群:446310206  有问题或技术交流可以咨询!欢迎加入! 这篇直接搬了一份官方文档过来看的 由于之前没用markdown搞的乱七八糟的 所以重新做了一份 后面看到官网的中文文 ...

  9. iOS中 流媒体播放和下载 韩俊强的博客

    iOS中关于流媒体的简介:介于下载本地播放与实时流媒体之间的一种播放形式,下载本地播放必须全部将文件下载完成后才能播放,而渐进式下载不必等到全部下载完成后再播放,它可以一边下载一边播放,在完成播放内容 ...

最新文章

  1. JNI编程支持X86处理器的步骤
  2. MySQL服务器的构建与维护
  3. php内核介绍及扩展开发指南,4.5. 发布扩展信息
  4. python server酱_12306这是肿么了?开售一秒就抢完,如何用Python抢到回家车票?
  5. 剑指offer系列48---左旋转字符串
  6. 2020法研杯比赛阅读理解任务冠军参赛总结
  7. python基础之模块初识
  8. 【python】爬虫入门书籍推荐
  9. Gradle使用maven仓库
  10. 联想硬盘保护系统安装
  11. 电力相关的中文期刊查找
  12. Androidx介绍及迁移
  13. php工业物联网实现,利用工业物联网网关巧妙实现远程控制
  14. 什么是Python中的Pip?
  15. ubuntu16.04 update 出现 aborted(core dumped)错误
  16. Linux服务器上部署项目以及问题记录
  17. ERP术语 英文对照(部分)(参考)
  18. Latex基本语法总结
  19. 计算机网络(2)——标准化工作及相关组织
  20. Apache Doris介绍

热门文章

  1. (0088)iOS开发之单例的写法以及重新认识
  2. (002) java后台开发之对象初始化
  3. 58.最全正则表达式教程,最好正则表达式教程
  4. MYSQL内置函数总结
  5. Error 错误: 找不到或无法加载主类
  6. php面试题之五——MySQL数据库(基础部分)
  7. C# 手动读写app config 的源码
  8. 一个LINUX高手写给初学者的话(转)
  9. Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办?
  10. 《转》 ImportError: No module named caffe 的解决方案