Apple pay
2016-05-18 14:23
507 查看
Apple pay的使用
apply pay:移动支付方式
:设备支持,银行支持,版本支持iPhone6+ iOS8.0+(ios9.2+中国使用),商家也要支持才可以使用
:应用场景:线下支付,线上支付(app需要支持)
:与支付宝、微信区别:手机型号、网络环境、使用技术
1.配置支付环境:BundleId、商业标识符、配置项目
BundleId:
商业标识符:进入开发者中心进入证书配置栏目添加appleId
配置Merchant Id并下载证书到钥匙串
绑定MerchantId到AppleID
2.到Xcode中开启Apple Pay功能,在target中的capabilities中开启
3.需要引入#import <PassKit/PassKit.h>框架
4.代码实现:1.判断当前设备是否支持苹果支付
if (![PKPaymentAuthorizationViewController canMakePayments]) {
NSLog(@"doesn't support ApplePay");//判断是否支持
} else if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay]]){//判断是否支持银行卡,如果支持则声称一个按钮
PKPaymentButton *button = [PKPaymentButton buttonWithType:PKPaymentButtonTypeSetUp style:PKPaymentButtonStyleWhiteOutline];
[button addTarget:self action:@selector(jump:) forControlEvents:UIControlEventTouchUpInside];
[btnView addSubview:button];
}
5.跳转到添加银行卡界面
-(void)add{
PKPassLibrary *pl = [[PKPassLibrary alloc]init];
[pl openPaymentSetup];
}
6.开始支付
-(void)jump:(UIButton *)btn{
NSLog(@"开始支付");
//创建支付请求
PKPaymentRequest *request = [[PKPaymentRequest alloc]init];
//配置支付请求
request.merchantIdentifier = @"";
//配置货币代码
request.countryCode = @"CN";
request.currencyCode = @"CNY";
//配置请求网络
request.supportedNetworks = @[PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];
//配置用户处理方式
request.merchantCapabilities = PKMerchantCapability3DS;
//配置购买的商品列表
NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithString:@"100"];//价格
PKPaymentSummaryItem *item = [PKPaymentSummaryItem summaryItemWithLabel:@"苹果笔记本" amount:price];
NSDecimalNumber *price1 = [NSDecimalNumber decimalNumberWithString:@"100"];//价格
PKPaymentSummaryItem *item1 = [PKPaymentSummaryItem summaryItemWithLabel:@"苹果笔记本2" amount:price1];
request.paymentSummaryItems = @[item,item1];
//配置请求的附加项
//是否显示发票收获地址,显示那些
request.requiredShippingAddressFields = PKAddressFieldAll;
//是否显示快递地址
request.requiredBillingAddressFields = PKAddressFieldAll;
//配置快递方式
NSDecimalNumber *price2 = [NSDecimalNumber decimalNumberWithString:@"10"];//价格
PKShippingMethod *method = [PKShippingMethod summaryItemWithLabel:@"顺丰快递" amount:price2];
method.identifier = @"顺丰";
method.detail = @"5小时内送到";
NSDecimalNumber *price3 = [NSDecimalNumber decimalNumberWithString:@"10"];//价格
PKShippingMethod *method2 = [PKShippingMethod summaryItemWithLabel:@"韵达快递" amount:price3];
method2.identifier = @"韵达";
method2.detail = @"马上就到";
request.shippingMethods = @[method,method2];
//配置类型
request.shippingType = PKShippingTypeStorePickup;
//添加附加数据
request.applicationData = [@"buyID=12345" dataUsingEncoding:NSUTF8StringEncoding];
//验证支付
PKPaymentAuthorizationViewController *avc = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:request];
avc.delegate = self;
[self presentViewController:avc animated:YES completion:nil];
}
7.实现两个代理方法
//代理方法
-(void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion{
//拿到支付信息,发送给服务器,处理完毕,服务器返回一个状态告诉客户端
BOOL isSucess = YES;
if (isSucess) {
completion(PKPaymentAuthorizationStatusSuccess);
}else{
completion(PKPaymentAuthorizationStatusFailure);
}
}
-(void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller{
NSLog(@"授权结束");
[self dismissViewControllerAnimated:controller completion:nil];
}
apply pay:移动支付方式
:设备支持,银行支持,版本支持iPhone6+ iOS8.0+(ios9.2+中国使用),商家也要支持才可以使用
:应用场景:线下支付,线上支付(app需要支持)
:与支付宝、微信区别:手机型号、网络环境、使用技术
1.配置支付环境:BundleId、商业标识符、配置项目
BundleId:
商业标识符:进入开发者中心进入证书配置栏目添加appleId
配置Merchant Id并下载证书到钥匙串
绑定MerchantId到AppleID
2.到Xcode中开启Apple Pay功能,在target中的capabilities中开启
3.需要引入#import <PassKit/PassKit.h>框架
4.代码实现:1.判断当前设备是否支持苹果支付
if (![PKPaymentAuthorizationViewController canMakePayments]) {
NSLog(@"doesn't support ApplePay");//判断是否支持
} else if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay]]){//判断是否支持银行卡,如果支持则声称一个按钮
PKPaymentButton *button = [PKPaymentButton buttonWithType:PKPaymentButtonTypeSetUp style:PKPaymentButtonStyleWhiteOutline];
[button addTarget:self action:@selector(jump:) forControlEvents:UIControlEventTouchUpInside];
[btnView addSubview:button];
}
5.跳转到添加银行卡界面
-(void)add{
PKPassLibrary *pl = [[PKPassLibrary alloc]init];
[pl openPaymentSetup];
}
6.开始支付
-(void)jump:(UIButton *)btn{
NSLog(@"开始支付");
//创建支付请求
PKPaymentRequest *request = [[PKPaymentRequest alloc]init];
//配置支付请求
request.merchantIdentifier = @"";
//配置货币代码
request.countryCode = @"CN";
request.currencyCode = @"CNY";
//配置请求网络
request.supportedNetworks = @[PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];
//配置用户处理方式
request.merchantCapabilities = PKMerchantCapability3DS;
//配置购买的商品列表
NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithString:@"100"];//价格
PKPaymentSummaryItem *item = [PKPaymentSummaryItem summaryItemWithLabel:@"苹果笔记本" amount:price];
NSDecimalNumber *price1 = [NSDecimalNumber decimalNumberWithString:@"100"];//价格
PKPaymentSummaryItem *item1 = [PKPaymentSummaryItem summaryItemWithLabel:@"苹果笔记本2" amount:price1];
request.paymentSummaryItems = @[item,item1];
//配置请求的附加项
//是否显示发票收获地址,显示那些
request.requiredShippingAddressFields = PKAddressFieldAll;
//是否显示快递地址
request.requiredBillingAddressFields = PKAddressFieldAll;
//配置快递方式
NSDecimalNumber *price2 = [NSDecimalNumber decimalNumberWithString:@"10"];//价格
PKShippingMethod *method = [PKShippingMethod summaryItemWithLabel:@"顺丰快递" amount:price2];
method.identifier = @"顺丰";
method.detail = @"5小时内送到";
NSDecimalNumber *price3 = [NSDecimalNumber decimalNumberWithString:@"10"];//价格
PKShippingMethod *method2 = [PKShippingMethod summaryItemWithLabel:@"韵达快递" amount:price3];
method2.identifier = @"韵达";
method2.detail = @"马上就到";
request.shippingMethods = @[method,method2];
//配置类型
request.shippingType = PKShippingTypeStorePickup;
//添加附加数据
request.applicationData = [@"buyID=12345" dataUsingEncoding:NSUTF8StringEncoding];
//验证支付
PKPaymentAuthorizationViewController *avc = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:request];
avc.delegate = self;
[self presentViewController:avc animated:YES completion:nil];
}
7.实现两个代理方法
//代理方法
-(void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion{
//拿到支付信息,发送给服务器,处理完毕,服务器返回一个状态告诉客户端
BOOL isSucess = YES;
if (isSucess) {
completion(PKPaymentAuthorizationStatusSuccess);
}else{
completion(PKPaymentAuthorizationStatusFailure);
}
}
-(void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller{
NSLog(@"授权结束");
[self dismissViewControllerAnimated:controller completion:nil];
}
相关文章推荐
- Apple Pay
- 苹果支付apple pay遇到的一些问题
- 苹果支付 apple Pay
- 芒果iOS开发之Apple Pay Programming Guide part1
- 芒果iOS开发之Apple Pay Programming Guide part2
- 最新《ApplePay支付》接入
- ApplePay
- 苹果支付成功后,JAVA服务端二次验证
- 苹果内购1(ituns connect 配置部分)
- 苹果内购2(代码部分)
- java后端处理Apple Pay流程
- Apple Pay-swift篇
- iOS ApplePay 苹果支付
- 关于Android studio的使用设置
- ecshop移动端支付宝支付对接
- Android内存优化之——static使用篇
- Bundle源码解析
- 启动swift服务的时候出现Exception: Could not bind to 0.0.0.0:8080 after trying for 30 seconds
- iOS懒加载
- iOS开发内存优化之自动检测内存泄露,检查是否有循环引用,检查内存为何如此大,Block循环引用的检查