IOS 支付功能的实现
支付宝是第三方支付平台,简单来说就是协调客户,商户,银行三者关系的方便平台
使用支付宝进行一个完整的支付功能,大致有以下步骤:
a 与支付宝进行签约,获得商户ID(partner)和账号ID(seller)
b 下载相应的公钥私钥文件(加密签名用)
c 下载支付宝SDK
d 生成订单信息
e 调用支付宝客户端,有支付宝客户端跟支付宝安全服务器打交道
f 支付完毕后返回支付结果给客户端和服务器
支付功能的实现 有两种方式:
1 支付宝的应用可以 用url 直接连接到 支付宝的官网 (当然后台是要进行处理的)
2 第二种就是添加支付宝的第三方了 首先 下载支付宝的demo
支付宝的demo 一般的常见问题解决
1 No architecutures to compile for (ONLY_ACTIVE_ARCH = YES, active arch = x86_64,VALID_ARCHS = i386)
出现这样的问题一般是 将 64 位编译进去就能解决了(这个问题只要你下载的是最新的demo一般很少见了 )
解决方案:
targets -> Architectures 下面的Valid Architectures 添加上 arm64
2 将支付宝的第三方添加到项目中的时候 有时 会出现 openssl 文件中的.h 文件报错 说此文件不能被找到
出现这样的问题是 的原因一般是添加的路径 不对
解决方案:
点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search”搜索,对“Header Search Paths” 增加头文件路径:$(SRCRCOT)/项目名称 设置一下路径 一般都能解决。
3 Cannot find interface declaration for "NSObject", supercalss of 'Base64'
解决方案 打开报错的文件,增加头文件
#import <Foundation/Foundation.h>
基本上支付宝中的demo 里面的问题一般都会得到解决。然后 看着demo 跟实际的项目结合一下就ok 了
正式开始 支付宝教程:
(因为申请的工作不是我做的 所以就此过程就略了 )
1 将需要的文件,静态库等拖入工程中,这里有:include,libs,Utilities,libcrypto.a,libssl.a文件
2 添加 库
Linked Frameworks and Libraries 中 添加
libssl.a libcrypto.a SystemConfiguration.framework
AlipaySDK.framework
3 如果商户要在某个文件中使用给支付宝的SDK 类库,需要增加引用头文件
#import "Order.h"
#import "DataSigner.h"
#import <AlipaySDK/AlipaySDK.h>
4 后面的基本上都是 按照官方demo写的
接口调用步骤:
1.封装订单模型将商品信息赋予AlixPayOrder的成员变量
Order *order = [[Order alloc] init];
// 应用注册scheme,在项目的info.plist 定义URL types
NSString *appScheme = @"zhifu";
/生成订单描述
NSString *orderSpec = [order description];
2.签名:获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
idsigner = CreateRSADataSigner(@“私钥key”);
NSString *signedString = [signer signString:orderSpec];
//传入订单描述 进行 签名
NSString *signedString = [signer signString:orderSpec];
3.生成订单字符串
NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",orderSpec,signedString, @"RSA"];
4.调用支付接口
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) { }];
IOS 支付功能的实现的更多相关文章
- iOS之开发支付功能概述
前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...
- IOS开发之支付功能概述
前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微 ...
- 关于IOS中使用支付功能(以支付宝为例)
支付宝是第三方支付平台,简单来说就是协调客户,商户,银行三者关系的方便平台 使用支付宝进行一个完整的支付功能,大致有以下步骤: a 与支付宝进行签约,获得商户ID(partner)和账号ID(sell ...
- IOS开发之—— iOS 支付 [支付宝、银联、微信]
支付宝iOSsdk官方下载sdk地址:https://b.alipay.com/order/productDetail.htm?productId=2013080604609654&tabId ...
- iOS支付
1.IOS purchase 介绍 所谓的IOS 内支付就是在应用中内嵌Store,在iOS APP 中使用Store Kit framework来实现In-App Purchase,Store Ki ...
- 简聊iOS支付集成(支付宝和微信支付)
一.支付集成是什么 1.现在大部分app都有快捷支付功能,支付集成将第三方支付平台集成到自己的项目中,能够完成自己项目中的支付功能, 二.支付集成的使用 <1>.支付宝: 下载SDK和De ...
- [5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)
1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...
- 微信公众号开发 [05] 微信支付功能开发(网页JSAPI调用)
1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...
- 手机网站支付如何接入支付宝简易版支付功能PHP版
接入支付宝准备工作:(关于账号可以是个体商户也可以是企业账号但必须有营业执照) 1.登录蚂蚁金服开放平台 2.创建应用,应用分类网页应用和移动应用.应用提交审核审核通过后得到Appid才能调用相应的 ...
随机推荐
- Decorator装饰模式
动态地给一个对象增加一些额外的职责.就增加功能而言,Decorator模式比生成子类更为灵活. ——<设计模式>GoF 作用:在不影响其他对象的情况下,以动态.透明的方式给单个对象添加职责 ...
- http 303 307 302 状态码理解
最近在看 <<the rails4 way>> 书中提到了这几个状态码,网上搜到几篇文章 http://www.cnblogs.com/cswuyg/p/3871976.htm ...
- distinct 多个字段
select distinct ID,AA,BB from tName与select distinct ID from tName有什么区别??第一种情况,distinct会不会影响AA,或者BB字段 ...
- SAP
http://www.itpub.net/thread-1328005-1-1.html http://blog.sina.com.cn/s/blog_4b75f26e0100b52a.html SA ...
- ecmall数据字典
ecm_acategory //文章分类表 字段 类型 Null 默认 注释 cate_id int(10) 否 自增ID号,分类ID号 cate_name varchar(100) 否 分类的名称 ...
- java 的Swing
1.原来的AWT组件来自java.awt包,而AWT组件的java应用程序在不同平台的界面显示不同.但是在不同平台运用Swing开发的应用程序,就可以使用同一的GUI界面. 2.SWing组件通常被称 ...
- [转]使用 HttpClient 和 HtmlParser 实现简易爬虫
http://www.ibm.com/developerworks/cn/opensource/os-cn-crawler/ http://blog.csdn.net/dancen/article/d ...
- 面向对象的ExtJS场景开发
写ExtJS已经3各月了,项目中临时学的,主要参考ExtJS 的文档学习,推荐一款JS开发工具Aptana Studio 3. 大概说一下开发ExtJS的准备: 1.下载Extjs(目前有4.x我使用 ...
- 剑指Offer:面试题12——打印1到最大的n位数(java实现)
问题描述: 输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999. 思路1:最简单的想法就是先找出最大的n位数,然后循环打印即可. public ...
- js对象3.1--什么是类,对象--杂志
先来吹吹牛 大家都见过那种做的很精致的小蛋糕吧,给我的感觉就是(很精致,很好看,不经吃太少了,还忒TM的贵).那么这些蛋糕是怎么做出来的呢,反正我不相信是一个一个的扭出来的(除非老板不想赚钱了,那个一 ...