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

iOS开发人员交流QQ群:
446310206

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

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


     这是使用支付宝支付的第一步,合作申请通过之后,会集成一个开发文件。即使不申请也能够下载,仅仅是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和支付宝client之间的跳转

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开发人员交流QQ群:
446310206


iOS中 支付宝钱包具体解释/第三方支付 韩俊强的博客的更多相关文章

  1. iOS中 支付宝钱包详解/第三方支付 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博! iOS开发者交流QQ群: 446310206 一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包.参考网址 ...

  2. iOS中 项目开发易错知识点总结 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 点击return取消textView 的响应者 - (BOOL)textFieldShouldReturn:(UI ...

  3. iOS中发送短信/发送邮件的实现 韩俊强的博客

    需要引入框架: MessageUI.framework 布局如下: 短信和邮件: #import "ViewController.h" #import <MessageUI/ ...

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

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

  5. iOS中 扫描二维码/生成二维码具体解释 韩俊强的博客

    近期大家总是问我有没有关于二维码的demo,为了满足大家的需求,特此研究了一番,希望能帮到大家! 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 指示根视图: se ...

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

    简介: // OSI(开放式系统互联), 由ISO(国际化标准组织)制定 // 1. 应用层 // 2. 表示层 // 3. 会话层 // 4. 传输层 // 5. 网络层 // 6. 数据链接层 / ...

  7. iOS中 扫描二维码/生成二维码详解 韩俊强的博客

    最近大家总是问我有没有关于二维码的demo,为了满足大家的需求,特此研究了一番,希望能帮到大家! 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 指示根视图: se ...

  8. iOS中 最新支付宝支付(AliPay) 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 现在的支付方式一般有三种, 支付宝, 微信, 网银. 个人觉得最简单易用的还是支付宝, 微信虽然看起来币支付宝要简单 ...

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

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 iOS中关于流媒体的简介:介于下载本地播放与实时流媒体之间的一种播放形式,下载本地播放必须全部将文件下载完成后才能播 ...

随机推荐

  1. PHP is_numeric 检测变量是否为数字或数字字符串

    bool is_numeric ( mixed $var ) 如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE. For example 1: <?php $v = is_ ...

  2. Java 语法糖详解

    语法糖 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法. 这种语法对语言的功能并没有影响,但是 ...

  3. 理解HTTP之keep-alive

    理解HTTP之keep-alive 在前面一篇文章中讲了TCP的keepalive,这篇文章再讲讲HTTP层面keep-alive.两种keepalive在拼写上面就是不一样的,只是发音一样,于是乎大 ...

  4. Linux终端记录神器

    我们在调试程序的时候,免不了要去抓一些 log ,然后进行分析.如果 log 量不是很大的话,那很简单,只需简单的复制粘贴就好.但是如果做一些压力测试,产生大量 log ,而且系统内存又比较小(比如嵌 ...

  5. java 查看线程的信息

    的代码上加上 断点 运行 进入Terminal jps 查看进程号 jstack 进程号  查看线程的信息 jstack pid 此时进去DEBUG 端F9 跑完程序 再回到Terminal 中 就能 ...

  6. CentOS 安装 Hadoop 手记

    Download & Install   download hadoop from http://hadoop.apache.org/releases.html#Download downlo ...

  7. STC单片机 IAP(EEPROM)的使用

    STC89C51.52内部都自带有2K字节的EEPROM,54.55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次 ...

  8. OpenCV学习代码记录——人脸检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  9. 【asp.net core】Publish to a Linux-Ubuntu 14.04 Server Production Environment

    Submary 又升级了,目录结构有变化了 . project.json and Visual Studio 2015 with .NET Core On March 7, 2017, the .NE ...

  10. FDMB 增删改删 查 分页 封装

    下载地址 http://pan.baidu.com/s/1qWrt9W4// // GCB_ProductDetailDB.h // TestDemo001 // // Created by Walt ...