开发环境xcode7.1 运行环境 IOS9.1

到支付宝面面下载IOS的移动支付功能的SDK(Android和IOS是同一个zip文件下)

http://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

然后申请商家支付宝,得到相应的private_key和partner,seller

IOS的资料在SDK文件夹的“客户端demo”下的IOS文件夹下

  • 复制AlipaySDK.bundle和AlipaySDK.framework到项目下

  • 复制IOS Demo下的两个.a文件到项目下

  • 复制iOS Demo下的openssl文件夹,Util文件夹,Order.h,Order.m(省得自己在swift中定义订单)文件到项目中

  • 在xcode中创建一个项目AlipayDemo,在项目中Add Files to AlipayDemo所有的.a文件和openssl文件夹,Util文件夹,Order.h,Order.m,此时系统提示创建头文件,选择允许创建(可以手动添加一个.h文件作为头文件)

  • 如果在基于IOS9.0编译,在info.list中添加如下xml代码(info.list以SourceCode形式打开)

<key>NSAppTransportSecurity</key><dict><key>NSExceptionDomains</key><dict><key>alipay.com</key><dict><!--Include to allowsubdomains--><key>NSIncludesSubdomains</key><true/><!--Include to allowinsecure HTTP requests--><key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key><true/><!--Include to specifyminimum TLS version--><key>NSTemporaryExceptionMinimumTLSVersion</key><string>TLSv1.0</string> <key>NSTemporaryExceptionRequiresForwardSecrecy</key><false/></dict></dict>
</dict>
  • 增加头文件

Util中的base64.h,openssl_wrapper.h添加#import <Foundation/Foundation.h>,给支付宝AlipaySDK.h添加#import <Foundation/Foundation.h>和#import<UIKit/UIKit.h>

  • 设置Build Settings

查找Bitcode,把Yes改成No

查打Header SearchPaths,点小+号,添加$(SRCROOT)/AlipayDemo

  • 在info的URL Types中添加一个GSWAlipayDemo的节点,以备代码中Order的appScheme使用。

  • 代码实现

import UIKit
class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()let but = UIButton(type: UIButtonType.System);but.setTitle("
支付", forState: UIControlState.Normal);but.backgroundColor = UIColor.greenColor();but.frame = CGRect(x: 10, y: 100, width: 100, height: 30);but.addTarget(self, action: "click", forControlEvents: UIControlEvents.TouchUpInside);self.view.addSubview(but);    }func click(){AliplayFunc();print("click")}var TicketTotalprice:Float=0.01;//支付金额var seller:String="支付宝申请的seller";var partner:String="支付宝申请的partner";var privateKey:String = "替换支付申请的privet_key";func AliplayFunc(){        let Orders = Order()        Orders.partner = partner        Orders.seller = seller        Orders.productName = "ProductName";        Orders.productDescription = "this is a goods";        Orders.amount = NSString(format: "%.2f",TicketTotalprice) as String ;//(价格必须小数点两位)        Orders.tradeNO = "DJ0000000001" ;       Orders.notifyURL = "http://selftweb.com";        Orders.service = "mobile.securitypay.pay";        Orders.paymentType = "1";        Orders.inputCharset = "utf-8";        Orders.itBPay = "30m";        Orders.showUrl = "m.alipay.com";        let appScheme = "GSWAPayDemo";//在        let orderSpec = Orders.description;        let signer = CreateRSADataSigner(privateKey);        let signedString = signer.signString(orderSpec);        let orderString = "\(orderSpec)&sign=\"\(signedString)\"&sign_type=\"RSA\"";     AlipaySDK.defaultService().payOrder(orderString, fromScheme: appScheme, callback: { (resultDic) -> Void in            print("reslut = \(resultDic)");            if let Alipayjson = resultDic as? NSDictionary{                let resultStatus = Alipayjson.valueForKey("resultStatus") as! String if resultStatus == "9000"{                    print("OK")}else if resultStatus == "8000" {                    print("正在处理中")                    self.navigationController?.popViewControllerAnimated(true) }else if resultStatus == "4000" {print("订单支付失败");self.navigationController?.popViewControllerAnimated(true)}else if resultStatus == "6001" {print("用户中途取消")self.navigationController?.popViewControllerAnimated(true)}else if resultStatus == "6002" {print("网络连接出错")self.navigationController?.popViewControllerAnimated(true)}}})}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}
}

Demo源代码

swift调用支付宝相关推荐

  1. Android和IOS 调用 支付宝和微信 支付方法

    Android和IOS 调用 支付宝和微信 支付方法 转载于:https://www.cnblogs.com/huangzineng/p/7235705.html

  2. Android之应用程序如何调用支付宝接口

    http://blog.csdn.net/lilidejing/article/details/19483717 最近在做一个关于购物商城的项目,项目里面付款这块我选的是调用支付宝的接口,因为用的人比 ...

  3. Swift调用Objective C的FrameWork

    很多Github的库经过很多年的发展,源码都是OC写的,,所以,用Swift调用OC的库就是开发中难免遇到的的一个问题,本文以AFNetworking为例,讲解如何跨语言调用. 第一步 创建一个空的工 ...

  4. django调用支付宝

    这篇博客主要是描述一下在调用支付宝的时候的一个通用方法.首先需要 1.一对公钥,私钥 2.自己支付宝账号的APPID与支付宝网关,获取网站:https://openhome.alipay.com/pl ...

  5. java调用支付宝接口代码介绍

    App支付产品介绍 更新时间:2018-05-08 场景介绍 适用于商家在App应用中集成支付宝支付功能. 商家APP调用支付宝提供的SDK,SDK再调用支付宝APP内的支付模块.如果用户已安装支付宝 ...

  6. 如何从Swift调用Objective-C代码?

    本文翻译自:How do I call Objective-C code from Swift? In Swift, how does one call Objective-C code? 在Swif ...

  7. php编程之如何调用支付宝支付接口的实现

    对于任何一款软件来说,支付功能都是核心的,那么目前的主流支付接口主要是支付宝.微信和银联卡,而大多数开发技术人员对于如何调用支付宝的支付接口还存在很大的困扰,今天就来跟大家分享一下如何正确调用支付宝支 ...

  8. h5调微信支付 unkonw url_h5移动端调用支付宝、微信支付的实现

    公司项目之前已有支付宝支付,现要求增加微信支付,第一次做,摸着石头过河!结果是满意的. 废话就不说了直接上代码: var aliChannel = null; var wxChannel = null ...

  9. springboot+调用支付宝第三方接口(沙箱环境)

    springboot+调用支付宝第三方接口(沙箱环境) 大神勿喷!! 网址:https://developers.alipay.com/platform/developerIndex.htm 沙箱环境 ...

最新文章

  1. Mysql 导入导出csv 中文乱码问题的解决方法
  2. Linux后台运行打包Jar的方法
  3. [云炬看世界]个人站长
  4. JavaScript(四)——面向对象编程、BOM、DOM、表单验证、jQuery
  5. 1085 PAT单位排行 (25 分
  6. python函数测试_Python测试函数的方法之一
  7. 模块化Java简介(转载infoq)
  8. 〔总结〕容易遗忘的JS知识点整理
  9. 解决PHP不打印任何东西浏览器输出字符串
  10. java即时聊天系统_基于Java技术的即时聊天系统实现(含源文件).doc
  11. IDEA 插件开发,显示气泡
  12. android红米升级失败怎么办,红米刷机失败怎么办?解决红米刷机失败教程
  13. python毕业论文答辩ppt_如何制作优秀的毕业论文答辩 PPT?
  14. android xutils3 jar,Android全能开源项目xUtils3开发教程、简单封装
  15. scrapy爬虫折腾系列-02
  16. java输出皮卡丘_使用CSS实现皮卡丘
  17. Word2vec代码实现
  18. Vim快捷键学习---记性不行了,留这里备查
  19. android gridview 详解,Android GridView九宫图
  20. LDAP中CN,OU,DC等的含义

热门文章

  1. 16.6 创建测试数据
  2. Java虚拟机家族考
  3. 一个例子学懂搜索引擎(lucene)
  4. Spring Cloud 各组件调优参数
  5. Leetcode-53 Maximum Subarray
  6. Unix 初步(一)
  7. C++程序中调用其他exe可执行文件方法
  8. AndroidのActivity之退出返回栈(二)
  9. VC++基于APR实现禁止某个业务(开发行为控制软件用得着,例如上班禁止上QQ)...
  10. 如何修改CMD命令行窗口下的默认路径