支付宝SDK的使用说明

简介: <p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; font-size:14px; border:0px; list-style:none; line-height:26px; color:rgb

现在电商类的应用与日俱增,直接导致了我们需要集成支付宝SDK的功能,从而完成能实现在线支付,手机支付的功能.说到在线支付,手机支付,这里还是有区别的,在线支付,一般指的是用UIWebView显示用于支付的网页,说实话本人感觉这样的用户体验很不好.

       而说到手机支付,现在主要指的就是,用各银行的网银支付,支付宝,财付通等等.相比在线支付,手机支付的用户体验还是比较好的,今天我想说的就是支付宝SDK的使用说明.至于剩下的几种,我会后续博客中补上.

       首先给大家介绍一下,支付宝官方SDK使用步骤 这里边其实已经讲的很详细了,但是可能某些人还是会操作失误.所以下面我还会总结一下:

       

使用支付宝进行一个完整的支付功能,大致有以下步骤:

1>先与支付宝签约,获得商户ID(partner)和账号ID(seller)

(这个主要是公司的负责)

 

2>下载相应的公钥私钥文件(加密签名用)

3>下载支付宝SDK(登录网站:http://club.alipay.com/

 

里面提供了非常详细的文档、如何签约、如何获得公钥私钥、如何调用支付接口。

 

 

4>生成订单信息

5>调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道

6>支付完毕后返回支付结果给商户客户端和服务器

 

 

 

SDK里有集成支付宝功能的一个Demo>  集成支付功能的具体操作方式,可以参考Demo

 

 

当第一次打开Demo时,可能会出现以下问题:

 

 

错误原因很简单,就是项目的部署版本设置太低了,从3.0改为4.3即可

 

 

 

要想集成支付功能,依赖以下文件夹的库文件(把这3个添加到你的客户端中)

 

 

 

调用支付接口可以参考AlixPayDemoViewController的下面方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


 

如何创建订单 ( 订单根据自己公司看是什么样的)

如何签名

如何调用支付接口

都在这个方法里面了

 

复制代码

 1 // 2 //选中商品调用支付宝快捷支付 3 // 4 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 5 { 6      9     Product *product = [_products objectAtIndex:indexPath.row];10     11     16     //如果partner和seller数据存于其他位置,请改写下面两行代码17     NSString *partner = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"Partner"];18     NSString *seller = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"Seller"];19     20     //partner和seller获取失败,提示21     if ([partner length] == 0 || [seller length] == 0)22     {23         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"24                                                         message:@"缺少partner或者seller。" 25                                                        delegate:self 
26                                               cancelButtonTitle:@"确定" 27                                               otherButtonTitles:nil];28         [alert show];29         [alert release];30         return;31     }32     33     37     //将商品信息赋予AlixPayOrder的成员变量38     AlixPayOrder *order = [[AlixPayOrder alloc] init];39     order.partner = partner;40     order.seller = seller;41     order.tradeNO = [self generateTradeNO]; //订单ID(由商家自行制定)42     order.productName = product.subject; //商品标题43     order.productDescription = product.body; //商品描述44     order.amount = [NSString stringWithFormat:@"%.2f",product.price]; //商品价格45     order.notifyURL =  @"http://www.xxx.com"; //回调URL46     47     //应用注册scheme,在AlixPayDemo-Info.plist定义URL types,用于快捷支付成功后重新唤起商户应用48     NSString *appScheme = @"AlixPayDemo"; 
49     50     //将商品信息拼接成字符串51     NSString *orderSpec = [order description];52     NSLog(@"orderSpec = %@",orderSpec);53     54     //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode55     id signer = CreateRSADataSigner([[NSBundle mainBundle] objectForInfoDictionaryKey:@"RSA private key"]);56     NSString *signedString = [signer signString:orderSpec];57     58     //将签名成功字符串格式化为订单字符串,请严格按照该格式59     NSString *orderString = nil;60     if (signedString != nil) {61         orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type="%@"",62                                  orderSpec, signedString, @"RSA"];63         64         //获取快捷支付单例并调用快捷支付接口65         AlixPay * alixpay = [AlixPay shared];66         int ret = [alixpay pay:orderString applicationScheme:appScheme];67         68         if (ret == kSPErrorAlipayClientNotInstalled) {69             UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示" 70                                                                  message:@"您还没有安装支付宝快捷支付,请先安装。" 71                                                                 delegate:self 
72                                                        cancelButtonTitle:@"确定" 73                                                        otherButtonTitles:nil];74             [alertView setTag:123];75             [alertView show];76             [alertView release];77         }78         else if (ret == kSPErrorSignError) {79             NSLog(@"签名错误!");80         }81 82     }83 84     [tableView deselectRowAtIndexPath:indexPath animated:YES];85 }

复制代码

 

主要集成的关键就是下面几步:

 

复制代码

//.封装订单模型AlixPayOrder *order = [[AlixPayOrder alloc] init];// 生成订单描述NSString *orderSpec = [order description];//2.签名id signer = CreateRSADataSigner(@“私钥key”);// 传入订单描述 进行 签名NSString *signedString = [signer signString:orderSpec];//3.生成订单字符串NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type="%@"",
                         orderSpec, signedString, @"RSA"];//4.调用支付接口AlixPay * alixpay = [AlixPay shared];// appScheme:商户自己的协议头int ret = [alixpay pay:orderString applicationScheme:appScheme];

复制代码


目录
相关文章
|
10月前
|
Java 应用服务中间件 开发工具
如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务
如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务
|
开发工具 Python
Django使用支付宝SDK完整网站应用支付。
Django使用支付宝SDK完整网站应用支付。
426 0
|
开发工具 iOS开发
iOS 支付宝SDK比较隐秘的坑
iOS 支付宝SDK比较隐秘的坑
169 0
|
移动开发 Java 开发工具
Android客户端三步完成支付宝支付SDK接入
Android客户端三步完成支付宝支付SDK接入
2151 0
|
编解码 Java Maven
阿里云视觉智能开放平台(VIAPI)人脸属性表情识别Python SDK使用说明
本文为您介绍表情识别RecognizeExpression的语法及示例。
1209 0
|
10月前
|
开发工具 iOS开发 Perl
mac电脑升级到10.15.7含有支付宝SDK的组件更新报错:AlipaySDK.framework/AlipaySDK for architecture arm64
mac电脑升级到10.15.7含有支付宝SDK的组件更新报错:AlipaySDK.framework/AlipaySDK for architecture arm64
127 0
|
10月前
|
人工智能 弹性计算 开发工具
【Hello AI】安装并使用FastGPU-Python SDK使用说明
用户可以通过FastGPU提供的Python接口,将FastGPU集成到您的人工智能训练或推理脚本中,从而实现快速的云上部署和资源管理。
|
网络协议 Java 应用服务中间件
支付宝SDK接口调试- cpolar内网穿透工具实现公网地址调试
支付宝SDK接口调试- cpolar内网穿透工具实现公网地址调试
245 0
|
网络协议 Java 应用服务中间件
【服务器】支付宝SDK接口调试
【服务器】支付宝SDK接口调试
633 0
|
开发工具 计算机视觉 Python
阿里云智能视觉生产图像处理裁剪/尺寸变换Python SDK使用说明
裁剪/尺寸变换用于对输入的图片进行指定尺寸变换,自动判断主体区域位置,使用最佳的裁剪方式完成裁剪。本文介绍如何使用阿里云智能视觉生产图像处理裁剪/尺寸变换Python SDK,包括SDK的安装方法及SDK代码示例。
534 0

热门文章

最新文章

  • 1
    【Azure Storage Account】利用App Service作为反向代理, 并使用.NET Storage Account SDK实现上传/下载操作
    23
  • 2
    【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    82
  • 3
    CompreFace:Star6.1k,Github上火爆的轻量化且强大的人脸识别库,api,sdk都支持
    54
  • 4
    【Azure Developer】编写Python SDK代码实现从China Azure中VM Disk中创建磁盘快照Snapshot
    29
  • 5
    【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    51
  • 6
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    175
  • 7
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    179
  • 8
    【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
    80
  • 9
    AutoTalk第十三期-应知必会的自动化工具-阿里云SDK支持策略(一)
    63
  • 10
    自动化AutoTalk第十期:应知必会的自动化工具-阿里云SDK
    66