"iOS8.1就已经有这个功能了,只是木有现在这么的火,现在的趋势是要火的节奏,因此很多电商平台B2B,P2P,C2C,X2X都有可能需要这个屌丝的付款功能了,在此简单的研究一下。"

第一步先修改target为iOS 8.1,当然支持中国的需要9.2以上且需要iPhone6以上了,然后在项目Capabilities里将Apple Pay设置为on,这将自动导入需要的库文件,然后添加一个权限文件并设置,最后修改或创建你的App ID。

正如上图提示的一样,你可能会注意到上面没有有效的Merchant ID,我们需要创建一个,访问苹果iOS 开发者中心的位于Identifiers > Merchant ID的页面。然后随着流程指引,创建一个Merchant ID并注册它。这个和其他证书差不多再此不做过多的阐述。下图是已经创建好的参考图片。

下载安装然后刷新下刚刚项目里面的界面,选择打勾即可,可以看到如下图

下面简单说下代码:

.h文件里面

#import [UIKit/UIKit.h](因识别问题,此处将尖括号改为方括号)
#import [PassKit/PassKit.h]
@interface ViewController : UIViewController @end

.m文件

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(, , , );
btn.center = self.view.center;
[btn setBackgroundImage:[UIImage imageNamed:@"ApplePayBTN_64pt__whiteLine_textLogo_"] forState:UIControlStateNormal]; [btn addTarget:self action:@selector(ApplePay) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn]; } #pragma mark ----支付状态
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
didAuthorizePayment:(PKPayment *)payment
completion:(void (^)(PKPaymentAuthorizationStatus status))completion
{
NSLog(@"Payment was authorized: %@", payment); BOOL asyncSuccessful = FALSE;
if(asyncSuccessful) {
completion(PKPaymentAuthorizationStatusSuccess); // do something to let the user know the status NSLog(@"支付成功"); } else {
completion(PKPaymentAuthorizationStatusFailure); // do something to let the user know the status
NSLog(@"支付失败"); } }
#pragma mark ----开始支付
- (void)ApplePay{
if([PKPaymentAuthorizationViewController canMakePayments]) { NSLog(@"支持支付"); PKPaymentRequest *request = [[PKPaymentRequest alloc] init]; PKPaymentSummaryItem *widget1 = [PKPaymentSummaryItem summaryItemWithLabel:@"鸡蛋"
amount:[NSDecimalNumber decimalNumberWithString:@"0.99"]]; PKPaymentSummaryItem *widget2 = [PKPaymentSummaryItem summaryItemWithLabel:@"苹果"
amount:[NSDecimalNumber decimalNumberWithString:@"1.00"]]; PKPaymentSummaryItem *widget3 = [PKPaymentSummaryItem summaryItemWithLabel:@"2个苹果"
amount:[NSDecimalNumber decimalNumberWithString:@"2.00"]]; PKPaymentSummaryItem *widget4 = [PKPaymentSummaryItem summaryItemWithLabel:@"总金额" amount:[NSDecimalNumber decimalNumberWithString:@"3.99"] type:PKPaymentSummaryItemTypeFinal]; request.paymentSummaryItems = @[widget1, widget2, widget3, widget4]; request.countryCode = @"CN";
request.currencyCode = @"CHW";
//此属性限制支付卡,可以支付。PKPaymentNetworkChinaUnionPay支持中国的卡 9.2增加的
request.supportedNetworks = @[PKPaymentNetworkChinaUnionPay, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
request.merchantIdentifier = @"merchant.com.example.lbapplepaydemo";
/*
PKMerchantCapabilityCredit NS_ENUM_AVAILABLE_IOS(9_0) = 1UL << 2, // 支持信用卡
PKMerchantCapabilityDebit NS_ENUM_AVAILABLE_IOS(9_0) = 1UL << 3 // 支持借记卡
*/
request.merchantCapabilities = PKMerchantCapabilityCredit;
//增加邮箱及地址信息
request.requiredBillingAddressFields = PKAddressFieldEmail | PKAddressFieldPostalAddress;
PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
paymentPane.delegate = self; if (!paymentPane) { NSLog(@"出问题了"); } [self presentViewController:paymentPane animated:YES completion:nil]; } else {
NSLog(@"该设备不支持支付");
} } #pragma mark ----支付完成
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller
{ [controller dismissViewControllerAnimated:TRUE completion:nil];
} @end

在此过程中你可能会遇到如下问题:

1.countryCode 不知道怎么查,我这写的是中国的countryCode查询网站

2.currencyCode 不会查,到目前为止,我也没搞懂,在错误信息里面提示一堆,随便选的一个。

3.木有iPhone6手机,我就是其中之一…….

其他我认为比较重要的属性,请详细看Demo具体效果图如下:

上图皆为模拟器

Apple Pay强势来袭,开发者应做的事情的更多相关文章

  1. Apple Pay强势来袭,开发者应做的事情(转)

    "iOS8.1就已经有这个功能了,只是木有现在这么的火,现在的趋势是要火的节奏,因此很多电商平台B2B,P2P,C2C,X2X都有可能需要这个屌丝的付款功能了,在此简单的研究一下." ...

  2. [Apple开发者帐户帮助]六、配置应用服务(1.2)Apple Pay:在网络上配置Apple Pay

    网上Apple Pay允许用户在您的网络应用中购买商品和服务. 首先在您的开发者帐户中创建一个商家标识符,该标识符可以将Apple Pay唯一标识为能够接受付款的商家.您可以为多个本机和Web应用程序 ...

  3. [Apple开发者帐户帮助]六、配置应用服务(1.1)Apple Pay:配置Apple Pay(iOS,watchOS)

    Apple Pay允许用户在您的应用中购买商品和服务.要将Apple Pay 权利添加到您的App ID,请先创建商家标识符,然后启用Apple Pay并创建付款处理证书. 或者,您可以使用Xcode ...

  4. 开发apple pay碰到的问题总结

    本来想简单总结一下Apple Pay 开发过程中的几个问题, 结果被下面这篇文章全碰上了, 干脆全文转载, 作者对相关资源整理得比较详细, 比较有参考价值 总的来说, 我们做过 APNs 推送的话, ...

  5. Apple Pay(转)

    Apple Pay 是在 iOS 8 中第一次被介绍,它可以为你的应用中的实体商品和服务,提供简单.安全.私密的支付方式.它使得用户支付起来非常简便,只需按一下指纹就可以授权进行交易. Apple P ...

  6. Apple Pay 应用 demo --备用哦

    "iOS8.1就已经有这个功能了,只是木有现在这么的火,现在的趋势是要火的节奏,因此很多电商平台B2B,P2P,C2C,X2X都有可能需要这个屌丝的付款功能了,在此简单的研究一下." ...

  7. 关于Apple Pay,一篇让你不看就会后悔的文章

    编者按:本文作者康上明学为“小米生活”产品经理,在苹果Apple Pay发布后,他对该产品做了深入研究,带来这篇文章. 对于 Apple Pay ,我有几个疑问: 线下支付是一个庞大复杂的流程,当中涉 ...

  8. AR实景购物强势来袭,华为nova3让你试完再买!

    没空买家具?没空挑壁纸? 浴盆挑了仨星期,还是老样子! 不敢下手买,没空往回退, 这样的生活,你说累不累! 别愁了, 按华为nova3说的办, 可省千元退货费! 刚刚过去的华为nova3发布会上,华为 ...

  9. AndroidQ强势来袭,国产自研系统还有未来吗?

    我的小米8在重启时,屏幕上总会出现那句让人印象深刻的话--"Powered by android".事实上,几乎所有Android手机都会出现这几个单词--国产智能手机也不例外.这 ...

随机推荐

  1. ios&h5混合开发项目仿app页面跳转优化

    前言:本人原本是ios开发工程师,但由于现今H5的兴起,行内刮起了一阵混合开发的风气,趁着这股劲,我也学了前端开发,不说研究的多深,但也能胜任日常的开发工作.长话短说,现今的混合开发应该还处于摸索阶段 ...

  2. jQuery分析(2) - $工厂函数分析

    前言 从这节进入jQuery的世界,首先从jQuery的入口函数开始了解jQuery()或$是如何运作的,这里我给出了一个最小的例子来分析. 回忆 在进入分析代码前我们回想下jQuery的使用方法有哪 ...

  3. Qt Linguist的使用

    国际化的英文表述为Internationalization,通常简写为I18N,QT Linguist是一个将“tr(“”)”引号中的语言翻译成另外语言的工具 1. 创建.ts文件 在Creator中 ...

  4. EF+WCF怎样更新数据?

    public virtual void Update(T entity) { T current = this.Where(m => m.Id.Equals(entity.Id)) .Singl ...

  5. [Linux]命令root与other切换

    切换至root:sudo -i切换至other:su 用户名 

  6. Python 统计代码行

    正在学习 Python, 做了个统计代码行的功能, 参考了网上很多前辈的帖子,添加了感觉还是比较实用的功能, 只是windows下测试了,而且代码文件编码形式是 utf-8的. 如果使用其它编码形式的 ...

  7. Mysql主从复制,读写分离

    一个简单完整的 Mysql 主从复制,读写分离的示意图. 1. 首先搭建 Mysql 主从架构,实现 将 mater 数据自动复制到 slave MySQL 复制的工作方式很简单,一台服务器作为主机, ...

  8. 黑马程序员——vim编辑器的使用

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.基本操作 1.从命令提示符进入vim编辑器:   vim filename <ENTE ...

  9. u-boot子目录Makefile分析

    一.概述 u-boot的子目录Makefile是整个Makefile体系的重要组成部分,决定了对应子目录的编译过程. 二.分析 以cpu/arm920t/Makefile为例进行说明 (1)首先,调用 ...

  10. 典当行以及海尔java小节

    1.视图问题,发现jar包都出现在根目录下面了,非常不方便.结果如下表: 原始视图是JavaEE,切换到Java视图即可: 2.Tomcat编译的时候什么都没有加载,看到的是一堆红字,那是因为tomc ...