简述ApplePay

Apple Pay

公司在2014苹果秋季新品发布会上发布的一种基于NFC近距离无线通讯技术的手机支付功能,于2014年10月20日在美国正式上线。
2016年2月18日凌晨5:00, Apple Pay 业务在中国上线。

屏幕快照 2016-08-02 下午6.20.32.png

支持系统和机型

操作系统最低iOS9.0以上,部分信息设置需要iOS9.2以上


适用设备.png

App接入Apple Pay

  • 基于iOS的PassKitFramework:
    需要对Payment Sheet的逻辑和异常情况做好相应的UI处理。同时在后台也需要做好支付信息解密、银联接口的交互以及订单状态处理。
  • 使用第三方SDK接入
  • 中国银联
  • 连连支付
  • 首信易支付
  • 易宝支付
    苹果目前建议国内和第三方合作接入ApplePay,能够省去了一家家银行签约的过程,由第三方和一家家银行沟通事项,商户和第三方沟通。所以签约部分就是和第三方支付平台签约了,钱会进入和第三方签约的银行卡内。

基于基于iOS PassKit Framework 接入Apple Pay

集成

  • 导入头文件
#import<PassKit/PassKit.h>用户绑定的银行卡信息
#import<PassKit/PKPaymentAuthorizationViewController.h>Apple pay的展示控件
  • 系统检测
if (![PKPaymentAuthorizationViewController class]) {
        PKPaymentAuthorizationViewController需iOS8.0以上支持
        return;
    }
  • 设备检测
 if (![PKPaymentAuthorizationViewController canMakePayments]) {
        支付需iOS9.0以上支持
     如果当前设备不支持ApplePay需要隐藏ApplePay支付按钮
        return;
    }
  • 检测用户可进行支付卡的类型
是否支持Amex、MasterCard、Visa与银联四种卡,根据自己项目的需要进行检测
NSArray *supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard,PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];
if (![PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:supportedNetworks]) 
{
  如果当前设备未设置/当前设备设置的支付银行卡无法在商户提供的支付平台支付,则隐藏ApplePay支付按钮,可以显示SetApple Pay按钮(可选),提醒用户进行设置ApplePay。
        return;
}
  • 创建支付请求
PKPaymentRequest
Ø//设置币种、国家码及merchant标识符等基本信息
PKPaymentRequest *payRequest = [[PKPaymentRequest alloc]init];
payRequest.countryCode = @"CN";     //国家代码
payRequest.currencyCode = @“CNY”;       //RMB的币种代码payRequest.merchantIdentifier = @“merchant.ApplePayAiitecDemo”;  //申请的merchantID
payRequest.supportedNetworks = supportedNetworks;   //用户可进行支付的银行卡
payRequest.merchantCapabilities = PKMerchantCapability3DS|PKMerchantCapabilityEMV; 
  • 送货地址
需要根据不同的商品类型来设置requiredShippingAddressFields
Ø如果使电子/虚拟商品(一般为提取/下载链接),则显示联系人邮箱。
Ø如果为实物,则显示联系人地址、手机号以及邮箱
payRequest.requiredShippingAddressFields = PKAddressFieldPostalAddress|PKAddressFieldPhone|PKAddressFieldName;
  //送货地址信息,这里设置需要地址和联系方式和姓名,如果需要进行设置,默认PKAddressFieldNone(没有送货地址)
  • 配送方式
//设置商品的配送方式
 PKShippingMethod *freeShipping = [PKShippingMethod summaryItemWithLabel:@"包邮" amount:[NSDecimalNumber zero]];
  freeShipping.identifier = @"freeshipping";
  freeShipping.detail = @"6-8 天 送达";
   
  PKShippingMethod *expressShipping = [PKShippingMethod summaryItemWithLabel:@"极速送达" amount:[NSDecimalNumber decimalNumberWithString:@"10.00"]];
  expressShipping.identifier = @"expressshipping";
  expressShipping.detail = @"2-3 小时 送达”;
  payRequest.shippingMethods = @[freeShipping, expressShipping];
  • 账单信息
账单列表使用PKPaymentSummaryItem添加描述和价格,价格使用NSDecimalNumber。
PKPaymentSummaryItem初始化:
label为商品名字或者是描述,amount为商品价格,折扣为负数,type为该条账单为最终价格还是估算价格
NSDecimalNumber*subtotalAmount= [NSDecimalNumber decimalNumberWithMantissa:1275 exponent:-2isNegative:NO];   //12.75
    PKPaymentSummaryItem *subtotal =[PKPaymentSummaryItem summaryItemWithLabel:@"商品价格"amount:subtotalAmount];
    NSDecimalNumber*discountAmount = [NSDecimalNumber decimalNumberWithString:@"-12.74"];      //-12.74
    PKPaymentSummaryItem *discount =[PKPaymentSummaryItem summaryItemWithLabel:@"优惠折扣"amount:discountAmount];  

关于NSDecimalNumber

  • 显示Apple Pay 控件
 PKPaymentAuthorizationViewController *viewController = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:payRequest];
 viewController.delegate= self;
 [self presentViewController:viewController animated:YES completion:nil];
界面1.png

界面2.png

代理方法

代理方法.png

Apple Pay UI强制要求

UI要求.png

官方文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容