》iOS8.1已经有了这个功能,只是没有现在这么流行,现在的趋势是要流行,所以很多电商平台B2B,P2P、C2C、X2X可能都需要这个屌丝的支付功能,我们在这里稍微研究一下。”第一步修改target为iOS8.1,当然要支持中国需要9.2以上和iPhone6以上,然后在项目Capabilities中将ApplePay设置为on,会自动导入requiredlibraryfiles,然后添加权限文件并设置,最后修改或创建你的AppID。如上提示,你可能会注意到上面没有有效的MerchantID,我们需要创建一个,访问AppleiOSDeveloperCenteratIdentifiers>MerchantID页面,然后按照流程创建MerchantID并注册,这个和其他证书差不多,这里就不多说了,下图是已经创建好的参考图。下载安装,然后在刚才的项目中刷新界面,选择打勾,可以看到下图,下面简单解释下代码:.h文件中的#import[UIKit/UIKit.h](由于识别问题,尖括号改为方括号)#import[PassKit/PassKit.h]@interfaceViewController:UIViewController@end.mfile#import"ViewController.h"@interfaceViewController()@end@implementationViewController-(void)viewDidLoad{[superviewDidLoad];UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeCustom];btn.frame=CGRectMake(60,100,200,50);btn.center=self.view.center;[btnsetBackgroundImage:[UIImageimageNamed:@"ApplePayBTN_64pt__whiteLine_textLogo_"]forState:UIControlStateNormal];[arget:@selector(ApplePay)forControlEvents:UIControlEventTouchUpInside];[self.viewaddSubview:btn];}#pragmamark----支付状态-(void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController*)controllerdidAuthorizePayment:(PKPayment*)paymentcompletion:(void(^)(PKPaymentAuthorizationStatusstatus))completion{NSLog(@"Paymentwasauthorized:%@",payment);BOOLasyncSuccessful=FALSE;if(asyncSuccessful){completion(PKPaymentAuthorizationStatusSuccess);//dosomethingtolettheuserknowthestatusNSLog(@"支付成功");}else{completion(PKPaymentAuthorizationStatusFailure);//dosomethingtolettheuserknowthestatusNSLog(@"支付失败");}}#pragmamark----开始支付-(void)ApplePay{if([PKPaymentAuthorizationViewControllercanMakePayments]){NSLog(@"支持支付");PKPaymentRequest*request=[[PKPaymentRequestalloc]init];PKPaymentSummaryItem*widget1=[PKPaymentSummaryItemssummaryItemWithLabel:@"Number.WdecimalString9amount:["String9amount"Number:[NSDecimal9"]];PKPaymentSummaryItem*widget2=[PKPaymentSummaryItemsummaryItemWithLabel:@"苹果"amount:[NSDecimalNumberdecimalNumberWithString:@"1.00"]];PKPaymentSummaryItem*widget3=[PKPaymentSummaryItemsummaryItemWithLabel:@"2个苹果"amount:[NSDecimalNumberdecimalNumberWithString:@"2.00"]];PKPaymentSummaryItem*widget4=[PKPaymentSummaryItemsummaryItemWithLabel:@"总金额"金额:[NSDecimalNumberdecimalNumberWithString:@"3.99"]类型:PKPaymentSummaryItemTypeFinal];request.paymentSummaryItems=@[widget1,widget2,widget3,widget4];request.countryCode=@"CN";request.currencyCode=@"CHW";//该属性限制支付卡,可以支付pkpaymentnetworkChinaUnionpay支持支持中国9.2增加增加增加增加增加增加增加增加增加增加增加增加增加增加增加增加增加增加的增加中国中国中国的中国中国中国中国中国中国支持信用卡PKMerchantCapabilityDebitNS_ENUM_AVAILABLE_IOS(9_0)=1UL<<3//支持借记卡*/request.merchantCapabilities=PKMerchantCapabilityCredit;//增加邮箱及地址信息request.requiredBillingAddressFields=PKAddressFieldEmail|PKAddressFieldPostalAddress;PKPaymentAuthorizationViewController*paymentPane=[[PKPaymentAuthorizationViewControlleralloc]initWithPaymentRequest:request];paymentPane.delegate=self;if(!paymentPane){NSLog(@"Somethingwentwrong");}[selfpresentViewController:paymentPaneanimated:YEScompletion:nil];}else{NSLog(@"Thisdevicedoesnotsupportpayment");}}#pragmamark----支付完成-(void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController*)controller{[controllerdismissViewControllerAnimated:TRUEcompletion:nil];}@end在这个过程中,你可能会遇到以下问题:1.不知道怎么查countryCode。我正在写中国的国家代码查询网站。2.我无法查看货币代码。到此为止,我也没看懂,错误信息里有一堆提示,随便选一个3。我没有iPhone6手机,我是其中之一。。。其他属性我认为更重要的是,请查看演示以获取详细信息。具体效果图如下:以上图片均为模拟器
