iOS 支付 [支付宝、银联、微信]
支付宝
使用支付宝进行一个完整的支付功能,大致有以下步骤:
1>先与支付宝签约,获得商户ID(partner)和账号ID(seller) (这个主要是公司的负责)
2>下载相应的公钥私钥文件(加密签名用)
3>下载支付宝SDK
4>生成订单信息
5>调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道
6>支付完毕后返回支付结果给商户客户端和服务器
在实现支付宝过程中,我们首先需要官方的文档以及支付宝的SDK.这个第一次开发时,SDK很难找到下载地址,这里给大家留下传送门:
支付宝开发者平台:https://doc.open.alipay.com/doc2/alipayDocIndex.htm
支付宝SDK下载地址:https://b.alipay.com/order/productDetail.htm?productId=2014110308141993&tabId=4#ps-tabinfo-hash
下载成功后可以看到如下的文档:
给大家标记的是一个支付宝的开发文档.里面有详细的开发步骤.
![](https://i-blog.csdnimg.cn/blog_migrate/8745321405a2e8fac75da6cae567de31.webp?x-image-process=image/format,png)
工程开发配置
首先我们需要从官方demo中拿到我们需要的类以及依赖库,并将他们都拖入到我们的自己的工程项目中:
我们首先需要拿到官方的demo. 以下是官方demo的文件路径:
![](https://i-blog.csdnimg.cn/blog_migrate/ce18ba57aab18aad28de80a1d8258a1a.webp?x-image-process=image/format,png)
找到我们需要的文件(ps:已经给大家标记出来了).这些文件都是我们工程中需要的文件.
![](https://i-blog.csdnimg.cn/blog_migrate/18bf83b64117f2d3dbefbbc4aa2101a8.webp?x-image-process=image/format,png)
工程配置文件
支付宝开发工程依赖库
![](https://i-blog.csdnimg.cn/blog_migrate/01ed80f9e2072fb6418873f523ca4989.webp?x-image-process=image/format,png)
所有的配置完成后,工程项目可能会存在一些错误:
我们需要在该文件中引入头文件.(这些错误官方开发者文档也有说明哟)
![](https://i-blog.csdnimg.cn/blog_migrate/6d2ab08d1aa9b76a8595950eab1a76f8.webp?x-image-process=image/format,png)
除此之外还会有一个路径错误:
![](https://i-blog.csdnimg.cn/blog_migrate/a8a570105f5d69b56b6c2b574da12eb7.webp?x-image-process=image/format,png)
解决这个路径问题也很简单.官方文档也说的很清楚.你需要在我们的项目中设置下路径
![](https://i-blog.csdnimg.cn/blog_migrate/fc2e8c5a10caa302d4406e10cca4d375.webp?x-image-process=image/format,png)
这些配置完成后是不是编译之后就成功了呢!
(ps:请大家注意这个细节.在工程配置中设置URL Schemes,如果不设置,那么支付跳转到支付宝后,无法再回到自己的app)
![](https://i-blog.csdnimg.cn/blog_migrate/4fc15216d1d449ae47a7371347e08983.webp?x-image-process=image/format,png)
这里给大家写了一个按钮关联了一个支付宝支付的方法.里面给大家写了详细的参数注释.
下载demo地址:http://pan.baidu.com/s/1o7qrTfc
银联支付
银联支付官方SDK下载地址:https://open.unionpay.com/ajweb/help/query
![](https://i-blog.csdnimg.cn/blog_migrate/4163a4c91e356d2aa27d7fd4d6e3c5f4.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/2dbd82f0c088485a0f63377a36205ff3.webp?x-image-process=image/format,png)
下载后我们需要找到以下位置
![](https://i-blog.csdnimg.cn/blog_migrate/a04891bdc258d0c46cf35023526564cf.webp?x-image-process=image/format,png)
这次打开官方的开发者文档.是不是想说:呵呵!写的真是漂亮
那么我这次就给大家说明下:
1、SDK 说明
SDK 分为以下两个版本:
1.支持纯无卡交易静态库,以下简称 UPPayPlugin,包含文件:
UPPayPlugin.h UPPayPluginDelegate.h libUPPayPlugin.a
2、支持纯无卡交易和 VIPOS 音频口支付静态库,以下简称 UPPayPluginPro,公司自主研发的 VIPOS(即“voice interface POS ”音频接口 POS 机)支付平台,与银联联合运营,并协助银 联制定了手机 POS 等安全规范、业务与技术标准。
包含文件:
UPPayPluginPro.h
UPPayPluginDelegate.h libUPPayPluginPro.a
3、添加 SDK 包
a.根据商户选择的SDK版本,将sdk/inc目录和sdk/libs目录下对应版本的三个文件添加到 UPPayDemo 工程中;
b.如 果 你 选 择 的 是 UPPayPlugin 版 本 , 添 加 QuartzCore.framework 、Security.framework 到工程中;
c.如 果 你 选 择 的 是 UPPayPluginPro 版 本 , 添 加 QuartzCore.framework 、AudioToolbox.framework, CoreAudio.framework 、 MediaPlayer.framework,AVFoundation.framework 和 Security.framework 到工程中;
工程配置:
1.在需要调用支付控件的源文件内引用头文件 UPPayPlugin.h 或 UPPayPluginPro.h(注意:如果工程的 compile source as 选项的值不是 Objective–C++,则引用此头文件的文件类型都要改为.mm)
![](https://i-blog.csdnimg.cn/blog_migrate/6dd9e521bebc5a7cf437cd84458c1484.webp?x-image-process=image/format,png)
2.在工程的 Build Settings 中找到 Other Linker Flags 中添加-ObjC 宏.(注意大小写.O是大写.C是大写)
![](https://i-blog.csdnimg.cn/blog_migrate/6bcc598cbe66bda67603b9e258de072d.webp?x-image-process=image/format,png)
3.将 xcode 工程中 Build Setting -> Apple LLVM compiler Language 标签下的 C++ Language Dialect 和 C++ Standard Library 属性值修改为 Compiler Default
![](https://i-blog.csdnimg.cn/blog_migrate/b23da3217d00c36f8f3be2f2246c86c4.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/e4929ebc53241ca9ed09a71893822a6e.webp?x-image-process=image/format,png)
这里给大家写了一个按钮关联了一个银联支付的方法.里面给大家写了详细的参数注释.
下载demo地址:http://pan.baidu.com/s/1i4s4azz
微信支付
微信支付官方SDK下载地址:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1
在官方的开发者平台上面还有开发者文档
![](https://i-blog.csdnimg.cn/blog_migrate/07e6088c9884c6c64f9847788582b596.webp?x-image-process=image/format,png)
开发步骤
1:去微信开放平台注册应用
https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN&token=2c0fee9c43e1eb8f9febcc7cb73abf598e2d4011
创建移动应用并成功之后会收到腾讯发来的邮件
![](https://i-blog.csdnimg.cn/blog_migrate/1904470cd41b5a7a6fefcc7c9f9a06b6.webp?x-image-process=image/format,png)
通过邮件你能获得重要的参数:
(1):AppID
(2):微信支付商户号
(4):前往商户平台完成入驻
(4):API秘钥(自己设置即可,注意一定要32位字母加数字的组合)记得保存好秘钥,以后要使用
![](https://i-blog.csdnimg.cn/blog_migrate/2fb67cce1856e9284fdcbda21c0a32f6.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/989b67beec6bf99ba1cb9ba0840d28b4.webp?x-image-process=image/format,png)
有了这些参数后,我们就可以开发自己的项目了.
首先我们需要把我们下载好的sdk导入到我们工程当中.
![](https://i-blog.csdnimg.cn/blog_migrate/19b6c20127b201368566474b63cce0a9.webp?x-image-process=image/format,png)
这3个文件是必须要导入到工程中去的.除了这个以外,我们还需要把依赖库给添加到工程中去
![](https://i-blog.csdnimg.cn/blog_migrate/eb039c410af71165ed1aee3c9a43c997.webp?x-image-process=image/format,png)
这些信息配置完成后,那么整个项目就可以进行代码实现支付了.
具体代码实现部分可以参考我的demo.也是非常简单的按钮关联了一个支付的方法.里面对参数写了详细的注释.
微信支付demo下载地址:http://pan.baidu.com/s/1pKooaiJ
注:
1.下载地址中的demo订单有可能用过,造成支付订单失效.需要重新生成新的订单即可!
2.demo中的SDK都是最新的版本,大家在做测试的时候,麻烦将手机升级至iOS9以上的版本.