ios Apple Pay 簡單使用
配置
1.在開發者帳號中先添加一個 Merchant IDs
2.如果已經有apple id,編輯apple id 在其中打開apple pay 選項,這時候就可選擇 剛纔添加的 Merchant IDs
3.重新配置provisioning Profiles安裝
4.在工程文件選擇capatilities 大家app pay選項,然後程序就會自動關聯之前設置的 Merchant IDs
5.在程序中導入頭文件#import<PassKit/PassKit.h>
同時要遵守一個協議<PKPaymentAuthorizationViewControllerDelegate>
6.代碼實現部分
if([PKPaymentAuthorizationViewController canMakePayments])
{
NSLog(@"設備支持支付");
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
PKPaymentSummaryItem *item1 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget1" amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];
PKPaymentSummaryItem *item2 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget2" amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];
PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"Grand Total" amount:[NSDecimalNumber decimalNumberWithString:@"0.02"]];
request.paymentSummaryItems = @[item1,item2,total]; // 最後一個必須是總價格
request.countryCode = @"CN"; // 國家
request.currencyCode = @"CNY"; // 人民幣
request.supportedNetworks =@[PKPaymentNetworkChinaUnionPay,PKPaymentNetworkAmex,PKPaymentNetworkDiscover,PKPaymentNetworkInterac, PKPaymentNetworkMasterCard,PKPaymentNetworkPrivateLabel,PKPaymentNetworkVisa];
request.merchantIdentifier = @"merchant.com.testapa";
request.merchantCapabilities = PKMerchantCapability3DS|PKMerchantCapabilityEMV;
PKPaymentAuthorizationViewController *payvw = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:request];
if (payvw) {
payvw.delegate = self;
[self presentViewController:payvw animated:YES completion:nil];
}else
{
UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:nil message:@"\n未綁定卡\n" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
[alertView show];
}
}else
{
UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:nil message:@"\n此設備不支持apple pay\n" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
[alertView show];
NSLog(@"此設備不支持apple pay");
}
7.實現協議以及回處理
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion
{
NSLog(@"payment was authoried %@ ",payment);
PKPaymentToken *payToken = payment.token;
NSLog(@"token = %@ ",payToken);
//支付憑據,發給服務端進行驗證支付是否真實有效
// PKContact *billingContact = payment.billingContact; //賬單信息
// PKContact *shippingContact = payment.shippingContact; //送貨信息
// PKContact *shippingMethod = payment.shippingMethod; //送貨方式
//等待服務器返回結果後再進行系統block調用
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//模擬服務器通信
completion(PKPaymentAuthorizationStatusSuccess);
});
}
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller
{
NSLog(@"Finishing payment view controller");
[controller dismissViewControllerAnimated:TRUE completion:nil];
}
8.付款成功後會返回一個token發送給服務器,服務器在收到 App 發送來的支付信息後,對數據進行解密操作,提取其中需要的信息,組織銀聯接口報文,調用銀聯的接口,完成扣款,會回調驗證結果
9.要保證你的手機已經綁定了銀行卡,如果沒有去設置-Wallet與Apple Pay 綁定
否則可能會出現This device cannot make payments錯誤
10. 更多詳細方法參考http://www.cocoachina.com/ios/20160226/15443.html
1.在開發者帳號中先添加一個 Merchant IDs
2.如果已經有apple id,編輯apple id 在其中打開apple pay 選項,這時候就可選擇 剛纔添加的 Merchant IDs
3.重新配置provisioning Profiles安裝
4.在工程文件選擇capatilities 大家app pay選項,然後程序就會自動關聯之前設置的 Merchant IDs
5.在程序中導入頭文件#import<PassKit/PassKit.h>
同時要遵守一個協議<PKPaymentAuthorizationViewControllerDelegate>
6.代碼實現部分
if([PKPaymentAuthorizationViewController canMakePayments])
{
NSLog(@"設備支持支付");
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
PKPaymentSummaryItem *item1 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget1" amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];
PKPaymentSummaryItem *item2 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget2" amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];
PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"Grand Total" amount:[NSDecimalNumber decimalNumberWithString:@"0.02"]];
request.paymentSummaryItems = @[item1,item2,total]; // 最後一個必須是總價格
request.countryCode = @"CN"; // 國家
request.currencyCode = @"CNY"; // 人民幣
request.supportedNetworks =@[PKPaymentNetworkChinaUnionPay,PKPaymentNetworkAmex,PKPaymentNetworkDiscover,PKPaymentNetworkInterac, PKPaymentNetworkMasterCard,PKPaymentNetworkPrivateLabel,PKPaymentNetworkVisa];
request.merchantIdentifier = @"merchant.com.testapa";
request.merchantCapabilities = PKMerchantCapability3DS|PKMerchantCapabilityEMV;
PKPaymentAuthorizationViewController *payvw = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:request];
if (payvw) {
payvw.delegate = self;
[self presentViewController:payvw animated:YES completion:nil];
}else
{
UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:nil message:@"\n未綁定卡\n" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
[alertView show];
}
}else
{
UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:nil message:@"\n此設備不支持apple pay\n" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
[alertView show];
NSLog(@"此設備不支持apple pay");
}
7.實現協議以及回處理
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion
{
NSLog(@"payment was authoried %@ ",payment);
PKPaymentToken *payToken = payment.token;
NSLog(@"token = %@ ",payToken);
//支付憑據,發給服務端進行驗證支付是否真實有效
// PKContact *billingContact = payment.billingContact; //賬單信息
// PKContact *shippingContact = payment.shippingContact; //送貨信息
// PKContact *shippingMethod = payment.shippingMethod; //送貨方式
//等待服務器返回結果後再進行系統block調用
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//模擬服務器通信
completion(PKPaymentAuthorizationStatusSuccess);
});
}
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller
{
NSLog(@"Finishing payment view controller");
[controller dismissViewControllerAnimated:TRUE completion:nil];
}
8.付款成功後會返回一個token發送給服務器,服務器在收到 App 發送來的支付信息後,對數據進行解密操作,提取其中需要的信息,組織銀聯接口報文,調用銀聯的接口,完成扣款,會回調驗證結果
9.要保證你的手機已經綁定了銀行卡,如果沒有去設置-Wallet與Apple Pay 綁定
否則可能會出現This device cannot make payments錯誤
10. 更多詳細方法參考http://www.cocoachina.com/ios/20160226/15443.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.