最全的apple pay苹果支付步奏
2016年2月18日上午,苹果公司宣布,与中国银联达成合作,正式在中国大陆上线Apple Pay服务。
Apple Pay 是一个基于 NFC 的支付系统,几乎所有的银行都支持。不知道大家还有没有印象,当初支付宝和位置的支付刚出来的时候,银行都恨不得想把他俩弄死。为啥 Apple Pay 一出来各大银行都支持。因为它和支付宝支付、微信支付是完全不同的概念。 Apple Pay 根本不是一个第三方支付工具。它仅仅是一种支付的表现形式。说白了 Apple Pay 就是帮银行刷卡而已。而支付宝和微信都是有自己的账户体系,甚至替代一部分银联功能。所以,各大银行当然会支持啦!
重点,我们还是来说说开发。
一 、创建项目
这一步其实没什么好说的。我们主要是为了要程序的 bundle id 。
二 、配置环境
首先需要大家了解一个叫做 merchant ID 的东西,这是一个 id ,需要在官网上进行配置。就和真机调试的时候配置证书一样。注册过后,就相当于有了一个商人的身份。这样你就可以使用这个商人的身份来接受付款。
1 )注册一个 merchant ID
1. 在 Member Center ,选择 Certificates, Identifiers & Profiles 。
2. 在 Identifiers 下面,选择 “Merchant IDs” 。
3. 单击右上角的 “ 添加 ” 按钮( + )。
4. 输入描述和标识符,然后单击 “ 继续 ” 。
5. 完成
2 )为你的 merchant ID 配置一个证书
1. 在 Member Center ,选择 Certificates, Identifiers & Profiles 。
2. 在 Identifiers 下面,选择 “Merchant IDs” 。
3. 单击 “ 编辑 ” 。
4. 上传 CSR 文件。(和真机调试一样,通过钥匙串生成)
5. 下载证书通过点击下载,并点击完成。
三 、添加项目对 Apple Pay 的支持
1. 打开项目。
2. 选择项目
3. 点击 Capabilities
4. 打开 Apple Pay 的开关
5. 并且勾选当初注册的 merchant ID
这个时候你应该三个灰色的小对勾,如果你按照上面的步骤是没问题的。如果碰到输入 “diffrent strings” 的字样,就是你的某个 ID 被占用了。换个名字就行。
四 、代码
1 )导入 PassKit 框架
#import <PassKit/PassKit.h>
2 )创建付款请求
付款请求是 PKPaymentRequest 类的实例。付款请求包括所购买的商品,用户信息等等。
在创建付款请求之前,确定用户是否可以使用网络,通过调用 PKPaymentAuthorizationViewController 类中的 canMakePaymentsUsingNetworks: 的方法。确定用户设备是否允许使用 Apple Pay ,通过调用 PKPaymentAuthorizationViewController 类中的 canMakePayments 方法
如果 canMakePayments 返回 NO ,那么说明该设备不支持 Apple Pay 。
如果 canMakePayments 返回 YES ,但 canMakePaymentsUsingNetworks :返回 NO ,设备支持苹果支付,但用户未添加任何所要求的银行卡。
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
2.1 )创建相关商品信息
商品信息的关键类是 PKPaymentSummaryItem ,每一个 item 对象都是一个商品信息,描述了一个商品和它的价格。通过 PKPaymentSummaryItem 的类方法 summaryItemWithLabel:(NSString )label amount:(NSDecimalNumber )amount ,可以创建出一个商品信息的实例。
然后放入 request.paymentSummaryItems 数组当中。数组中,最后的对象是总价。
PKPaymentSummaryItem *good1 = [PKPaymentSummaryItem summaryItemWithLabel:@"HHKB professional 2" amount:[NSDecimalNumber decimalNumberWithString:@"1388"]]; PKPaymentSummaryItem *good2 = [PKPaymentSummaryItem summaryItemWithLabel:@" 营养快线 " amount:[NSDecimalNumber decimalNumberWithString:@"4"]]; PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@" 德玛西亚 " amount:[NSDecimalNumber decimalNumberWithString:@"1392"]]; request.paymentSummaryItems = @[ good1, good2, total ];
2.2 )货币单位
货币单位需要使用
request.currencyCode = @"CNY”; (人民币)
2.3 ) Wallet 所绑定的卡的类型
request.supportedNetworks = @[ PKPaymentNetworkMasterCard, PKPaymentNetworkVisa, PKPaymentNetworkChinaUnionPay ];
2.4 ) merchant ID
request.merchantIdentifier = @"merchant.cn.itcast.ITCASTPayDemo";
2.5 )支付处理标准
通过指定 merchantCapabilities 属性来指定你支持的支付处理标准, 3DS 支付方式是必须支持的, EMV 方式是可选的。
request.merchantCapabilities = PKMerchantCapabilityEMV;
2.6 )配送信息
设置后,如果用户之前没有填写过,那么会要求用户必须填写才能够使用 Apple Pay 。
request.requiredShippingAddressFields = PKAddressFieldPostalAddress | PKAddressFieldPhone | PKAddressFieldEmail | PKAddressFieldName;
3 )创建用来显示支付信息的控制器
这个专门用来显示支付 ’ 息的控制器是 PKPaymentAuthorizationViewController 类的实例。可以在初始化方法中传入一个付款请求。然后使用 modal 的方式显示出来即可。
PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request]; [self presentViewController:paymentPane animated:YES completion:nil];
3.1 )为显示支付信息的控制器设置代理
遵守 PKPaymentAuthorizationViewControllerDelegate 协议,然后设置代理。
paymentPane.delegate = self;
这个协议中与两个 required 的方法。
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller { [self dismissViewControllerAnimated:YES completion:nil]; }
这个方法在支付结束和点击取消的时候调用,所有直接写上 dismiss 就可以了。
- (void) paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion { completion(PKPaymentAuthorizationStatusSuccess); }
用户发送付款请求后会调用该方法。在这个方法中发送相关的支付信息到你的服务器,最后通过服务器来处理。如果服务期处理成功,那么需要调用 completion 的 block 并且传入 PKPaymentAuthorizationStatusSuccess 的标记即可。如果服务器处理不成功,那么传一个其他的标记就可以了。
最全的apple pay苹果支付步奏相关推荐
- Apple pay 苹果支付
1.银联认证,到银联下载证书 1.登录银联云闪付 查看<银联云闪付之 ApplePay 商户入网测试流程>https://jingyan.baidu.com/article/48206ae ...
- Apple Pay支付分享
主要内容 1.目前国内支付体系 2.Apple Pay中产业链结构 3.Apple Pay中新技术的应用和集成简述 4.Apple Pay支付模式 5.Apple Pay银行卡绑定流程 6.Apple ...
- Apple Pay 在线远程支付
Apple Pay 详细集成文档 Apple pay刚推出的时候可以说"绑定的过程很崩溃,用的时候很心碎",为什么要这样说呢?因为刚一推出,就有大量的人同时绑定,银行和银联又处理不 ...
- springboot 银联支付(apple pay支付)
springboot 银联支付(apple pay支付) 应用:手机支付使用apple pay进行支付(apple pay是银联和苹果公司合作推出的支付产品,既可实现近场支付又可完成远程支付的服务,通 ...
- apple pay php 文档,Apple Pay 终于可以支付 iTunes、App Store 中的内容了
虽然苹果很早就推出了支付服务 Apple Pay,但它一直以来都只被用于面向第三方的支付场景,苹果的 iTunes.App Store 等利用 Apple ID 登录的平台则采用一套独立的支付体系.不 ...
- 移动支付(mobile money)系列 —— Apple Pay的原理
Apple Pay 背景 起因 传统基于磁条卡片(包括信用卡.银行卡)的支付流程是不安全且繁琐的,磁条接口.暴露在外的卡片号码.支付密码/安全码等都存在安全隐患,磁卡支付流程过长,用户体验差 Appl ...
- 苹果官方Apple Pay开发文档(中文版):开始使用Apple Pay
原文地址:http://www.cocoachina.com/ios/20140910/9573.html 本文由CocoaChina翻译自苹果官方Apple Pay开发文档.目前版本为1.0 概览: ...
- 苹果官方Apple Pay开发文档(中文版)
概览: Apple Pay为用户从你的App里购买实际的物品和服务提供简单而安全的方法.通过Touch ID,用户可使用储存在iPhone 6和iPhone 6 Plus上的信用卡和借记卡支付证书来授 ...
- Apple Pay与银联的联姻,是战略,不是产品
近日,互联网圈被Apple Pay入华与银联联姻的消息刷屏了!!!! 一时间,各大媒体网站纷纷为支付宝和微信支付担忧,肿么办肿么办,大鳄来啦!不免我们这些屌丝都替马云马化腾捏把汗,多年经营的支付天下就 ...
最新文章
- linux下数据库的基本管理,数据库的管理_linux 运维之道 基础篇的技术博客_51CTO博客...
- Mac下Git与Github的简单使用
- Linux版本之挑选适合服务器的OS发行版
- 青茶什么时候拆_为什么日本绿茶那么绿?比中国的高级绿茶还要绿
- 整理JavaScript中,数组和字符的操作方法
- Scikit-learn 秘籍 翻译完成
- 从传统企业谈大数据的战略意义
- 解决苹果手机返回不刷新问题
- mysql建三行三列表格_基于另一个表中列的名称在mysql中创建表
- Xmind 2022精彩体验---什么叫流程图
- R语言快速绘制多因素回归分析森林图(1)
- OSEK OS(OSEK 操作系统)
- Windows 服务快捷启动命令
- linux使用USB转串口驱动设置
- Python模块selenium实例:电影分类排名数据生成json,sqlite和excel(openpyxl)文件(一)
- 内存高效的可逆 GAN 网络:Reversible GANs for Memory-efficient Image-to-Image Translation
- 孤儿文档是怎样产生的(MongoDB orphaned document)
- 实现内网穿透,个人电脑秒变服务器
- C#语言入门详解1-12
- 英文月份简写、星期简写