日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS之支付

發布時間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS之支付 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iOS支付

iOS支付分為兩類,第三方支付應用內支付(內購)

第三方支付包括:支付寶支付、微信支付、銀聯支付、百度錢包、京東支付等等。

應用內支付(In-App Purchase):在應用程序內購買虛擬商品。如果你在App Store上銷售的應用程序,將收到支付金額的70%。

第三方支付

彈出方式

網頁

有些第三方支付沒有安裝客戶端,可以直接彈出網頁進行支付。(比如支付寶)

調用APP

手機中安裝了客戶端可以跳轉到APP中進行支付。微信支付只能調用App進行支付。

支付寶支付

相關資料

  • 支付寶開放平臺(SDK&開發文檔): open.alipay.com/platform/ho…
  • 移動支付集成: doc.open.alipay.com/doc2/detail…
  • 商戶服務平臺(與支付寶簽約需要填寫的公司資料): b.alipay.com/newIndex.ht…

支付流程

  • 在商戶服務平臺先與支付寶簽約,獲得商戶ID(partner)和賬號ID(seller),需要提供公司資質或者營業執照,個人無法申請。

    文檔地址: doc.open.alipay.com/doc2/detail…

  • 生成并下載相應的公鑰私鑰文件(加密簽名用)

    文檔地址: doc.open.alipay.com/doc2/detail…

  • 下載支付寶SDK: doc.open.alipay.com/doc2/detail…

  • 生成訂單信息

  • 調用支付寶客戶端,由支付寶客戶端跟支付寶安全服務器打交道

  • 支付完畢后返回支付結果給商戶客戶端和服務器

  • SDK里有集成支付寶功能的一個Demo,集成支付功能的具體操作方式,可以參考Demo。

    代碼集成流程

    參考文檔地址: doc.open.alipay.com/doc2/detail…

  • 下載官方SDK

    下載地址: doc.open.alipay.com/doc2/detail…

    本Demo使用的SDK是從官方Demo整理出來的,整理的SDK版本:201501022。

    下載地址:7xooko.com1.z0.glb.clouddn.com/AlipaySDK.z…

    目錄結構如下:

    ├── AlipaySDK.bundle ├── AlipaySDK.framework ├── Order.h ├── Order.m ├── Util ├── libcrypto.a ├── libssl.a └── openssl 復制代碼

    其中:

    • AlipaySDK.bundle和AlipaySDK.framework是支付寶SDK
    • Order類:定義訂單信息
    • Util、libcrypto.a、libssl.a、openssl:數據簽名,對訂單信息進行加密
  • 添加依賴庫

    其中,需要注意的是:

    如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd;

    如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib。

  • 創建prefix header filePCH文件,添加#import <Foundation/Foundation.h>

    在Build Settings中的prefix header設置pch文件路徑

  • 在Build Settings中Header Search Paths添加頭文件引用路徑,[文件路徑]/AlipaySDK/

  • 在需要調用AlipaySDK的文件中,增加頭文件引用。

    #import??<AlipaySDK/AlipaySDK.h>
    #import?"Order.h"
    #import?"DataSigner.h"
    復制代碼
  • 生成訂單信息及簽名

    //將商品信息賦予AlixPayOrder的成員變量
    Order?*order?=?[[Order?alloc]?init];
    order.partner?=?PartnerID;?//?商戶ID
    order.seller?=?SellerID;?//?賬號ID
    order.tradeNO?=?@"20150923";?//訂單ID(由商家自行制定)
    order.productName?=?@"iPhone6s";?//商品標題
    order.productDescription?=?@"新年打折";?//商品描述
    order.amount?=?@"0.01";?//商品價格(單位:元)
    order.notifyURL?=??@"http://www.chaosky.me";?//回調URL,支付成功或者失敗回調通知自己的服務器進行訂單狀態變更
    order.service?=?@"mobile.securitypay.pay";
    order.paymentType?=?@"1";
    order.inputCharset?=?@"utf-8";
    order.itBPay?=?@"30m";
    order.showUrl?=?@"m.alipay.com";

    //?應用注冊scheme,在AlixPayDemo-Info.plist定義URL?types
    NSString?*appScheme?=?@"AliPayDemo";

    //將商品信息拼接成字符串
    NSString?*orderSpec?=?[order?description];
    NSLog(@"orderSpec?=?%@",orderSpec);

    //獲取私鑰并將商戶信息簽名,外部商戶可以根據情況存放私鑰和簽名,只需要遵循RSA簽名規范,并將簽名字符串base64編碼和UrlEncode
    id<DataSigner>?signer?=?CreateRSADataSigner(PartnerPrivKey);
    NSString?*signedString?=?[signer?signString:orderSpec];

    //將簽名成功字符串格式化為訂單字符串,請嚴格按照該格式
    NSString?*orderString?=?nil;
    if?(signedString?!=?nil)?{
    ????orderString?=?[NSString?stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
    ???????????????????orderSpec,?signedString,?@"RSA"];

    ????[[AlipaySDK?defaultService]?payOrder:orderString?fromScheme:appScheme?callback:^(NSDictionary?*?resultDic)?{
    ????????NSLog(@"reslut?=?%@",resultDic);
    ????}];
    }
    復制代碼
  • Xcode設置URL scheme

    iPhone SDK可以把你的App和一個自定義的URL Scheme綁定。該URL Scheme可用來從瀏覽器或別的App啟動你的App。

    配置方法:打開info.plist文件,找到或者添加如圖所示的鍵值對:

    URL Scheme值為代碼中對應的值,必須一致

  • 配置支付寶客戶端返回url處理方法

    AppDelegate.m文件中,增加引用代碼:

    #import?<AlipaySDK/AlipaySDK.h>
    復制代碼

    在@implementation AppDelegate中增加如下代碼:

    -?(BOOL)application:(UIApplication?*)application?openURL:(NSURL?*)url?sourceApplication:(NSString?*)sourceApplication?annotation:(id)annotation
    {
    ????//如果極簡開發包不可用,會跳轉支付寶錢包進行支付,需要將支付寶錢包的支付結果回傳給開發包
    ????if?([url.host?isEqualToString:@"safepay"])?{
    ????????[[AlipaySDK?defaultService]?processOrderWithPaymentResult:url?standbyCallback:^(NSDictionary?*?resultDic)?{
    ????//【由于在跳轉支付寶客戶端支付的過程中,商戶app在后臺很可能被系統kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調結果進行處理,就是在這個方法里面處理跟callback一樣的邏輯】
    ????????????NSLog(@"result?=?%@",resultDic);
    ????????}];
    ????}
    ????if?([url.host?isEqualToString:@"platformapi"]){//支付寶錢包快登授權返回authCode

    ????????[[AlipaySDK?defaultService]?processAuthResult:url?standbyCallback:^(NSDictionary?*?resultDic)?{
    ????????????//【由于在跳轉支付寶客戶端支付的過程中,商戶app在后臺很可能被系統kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調結果進行處理,就是在這個方法里面處理跟callback一樣的邏輯】
    ????????????NSLog(@"result?=?%@",resultDic);
    ????????}];
    ????}
    ????return?YES;
    }
    復制代碼
  • 微信支付

    需要提供公司資質或者營業執照,個人無法申請。

    相關文檔

    • 微信開放平臺:open.weixin.qq.com
    • 微信支付商戶平臺:pay.weixin.qq.com/index.php
    • 微信公眾平臺:mp.weixin.qq.com

    支付流程

  • 向微信注冊你的應用程序id

    開發者應用登記頁面 進行登記,登記并選擇移動應用進行設置后,將獲得AppID,可立即用于開發。但應用登記完成后還需要提交審核,只有審核通過的應用才能正式發布使用。

  • 微信APP支付接入商戶服務中心

    參考文檔鏈接:open.weixin.qq.com/cgi-bin/sho…

  • 下載微信SDK文件,如果在項目中應使用SDK的最新版。

    官方資源下載地址:open.weixin.qq.com/cgi-bin/sho…

    本Demo使用的SDK是從官方Demo整理出來的,整理的SDK版本:1.6.1。

    下載地址:7xooko.com1.z0.glb.clouddn.com/AlipaySDK.z…

    目錄結構如下:

    ├── SDKExport │?? ├── WXApi.h │?? ├── WXApiObject.h │?? ├── libWeChatSDK.a │?? └── read_me.txt └── lib├── ApiXml.h├── ApiXml.mm├── WXUtil.h├── WXUtil.mm├── payRequsestHandler.h└── payRequsestHandler.mm 復制代碼

    其中:

    SDKExport文件夾:SDK文件

    lib文件夾:工具類

  • 添加依賴庫

    SystemConfiguration.framework libz.dylib libsqlite3.dylib libc++.dylib CoreTelephony.framework CoreGraphics.framework 復制代碼
  • 在需要調用WeChatSDK的文件中,增加頭文件引用。

    #import?"WXApi.h"
    #import?"payRequsestHandler.h"
    復制代碼
  • 生成訂單信息及簽名

    #pragma?mark?-?微信支付
    -?(void)wechatPayAction:(UIButton?*)?sender
    {
    ????//?判斷用戶是否安裝微信
    ????if?(![WXApi?isWXAppInstalled])?{
    ????????UIAlertView?*?alertView?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"請安裝微信客戶端"?delegate:nil?cancelButtonTitle:@"確定"?otherButtonTitles:nil];
    ????????[alertView?show];
    ????????return;
    ????}
    ????
    ????//?實現支付
    ????[self?sendPay_demo];
    }

    -?(void)sendPay_demo
    {
    ????//{{{
    ????//本實例只是演示簽名過程,?請將該過程在商戶服務器上實現
    ????
    ????//?配置微信支付的參數
    ????//創建支付簽名對象
    ????payRequsestHandler?*req?=?[[payRequsestHandler?alloc]?init];
    ????//初始化支付簽名對象
    ????[req?init:__WXappID?mch_id:__WXmchID];
    ????//設置密鑰
    ????[req?setKey:__WXpaySignKey];
    ????
    ????//}}}
    ????
    ????//獲取到實際調起微信支付的參數后,在app端調起支付
    ????NSMutableDictionary?*dict?=?[req?sendPay_demo];
    ????
    ????if(dict?==?nil){
    ????????//錯誤提示
    ????????NSString?*debug?=?[req?getDebugifo];
    ????????
    ????????[self?alert:@"提示信息"?msg:debug];
    ????????
    ????????NSLog(@"%@\n\n",debug);
    ????}else{
    ????????NSLog(@"%@\n\n",[req?getDebugifo]);
    ????????//[self?alert:@"確認"?msg:@"下單成功,點擊OK后調起支付!"];
    ????????
    ????????NSMutableString?*stamp??=?[dict?objectForKey:@"timestamp"];
    ????????
    ????????//調起微信支付
    ????????PayReq*?req?????????????=?[[PayReq?alloc]?init];
    ????????req.openID??????????????=?[dict?objectForKey:@"appid"];
    ????????req.partnerId???????????=?[dict?objectForKey:@"partnerid"];
    ????????req.prepayId????????????=?[dict?objectForKey:@"prepayid"];
    ????????req.nonceStr????????????=?[dict?objectForKey:@"noncestr"];
    ????????req.timeStamp???????????=?stamp.intValue;
    ????????req.package?????????????=?[dict?objectForKey:@"package"];
    ????????req.sign????????????????=?[dict?objectForKey:@"sign"];
    ????????
    ????????//?調用微信支付
    ????????[WXApi?sendReq:req];
    ????}
    }

    //客戶端提示信息
    -?(void)alert:(NSString?*)title?msg:(NSString?*)msg
    {
    ????UIAlertView?*alter?=?[[UIAlertView?alloc]?initWithTitle:title?message:msg?delegate:nil?cancelButtonTitle:@"OK"?otherButtonTitles:nil];
    ????
    ????[alter?show];
    }
    復制代碼

    ?

  • Xcode設置URL scheme

    在Xcode中,選擇你的工程設置項,選中“TARGETS”一欄,在“info”標簽欄的“URL type“添加“URL scheme”為你所注冊的應用程序id(如下圖所示)。

  • 在你需要使用微信終端API的文件中import WXApi.h 頭文件,并增加 WXApiDelegate 協議。

    //?微信所有的API接口
    #import?"WXApi.h"
    //?APP端簽名相關頭文件
    #import?"payRequsestHandler.h"
    @interface?AppDelegate?()<WXApiDelegate>
    @end
    復制代碼
  • 要使你的程序啟動后微信終端能響應你的程序,必須在代碼中向微信終端注冊你的id。(如下圖所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函數中向微信注冊id)。

    -?(BOOL)application:(UIApplication?*)application?didFinishLaunchingWithOptions:(NSDictionary?*)launchOptions?{
    ????//?Override?point?for?customization?after?application?launch.
    ????//向微信注冊
    ????[WXApi?registerApp:APP_ID?withDescription:@"demo?2.0"];
    ????return?YES;
    }
    復制代碼

    重寫AppDelegate的handleOpenURL和openURL方法:

    -?(BOOL)application:(UIApplication?*)application?handleOpenURL:(NSURL?*)url
    {
    ????return?[WXApi?handleOpenURL:url?delegate:self];
    }

    -?(BOOL)application:(UIApplication?*)application?openURL:(NSURL?*)url?sourceApplication:(NSString?*)sourceApplication?annotation:(id)annotation
    {
    ????return?[WXApi?handleOpenURL:url?delegate:self];
    }
    復制代碼
  • 現在,你的程序要實現和微信終端交互的具體請求與回應,因此需要實現WXApiDelegate協議的兩個方法:

    -(void)?onReq:(BaseReq*)req
    {
    ????if([req?isKindOfClass:[GetMessageFromWXReq?class]])
    ????{
    ????????//?微信請求App提供內容,?需要app提供內容后使用sendRsp返回
    ????????NSString?*?strTitle?=?[NSString?stringWithFormat:@"微信請求App提供內容"];
    ????????NSString?*?strMsg?=?@"微信請求App提供內容,App要調用sendResp:GetMessageFromWXResp返回給微信";

    ????????UIAlertView?*?alert?=?[[UIAlertView?alloc]?initWithTitle:strTitle?message:strMsg?delegate:self?cancelButtonTitle:@"OK"?otherButtonTitles:nil,?nil];
    ????????alert.tag?=?1000;
    ????????[alert?show];
    ????}
    ????else?if([req?isKindOfClass:[ShowMessageFromWXReq?class]])
    ????{
    ????????ShowMessageFromWXReq?*??temp?=?(ShowMessageFromWXReq*)req;
    ????????WXMediaMessage?*?msg?=?temp.message;

    ????????//顯示微信傳過來的內容
    ????????WXAppExtendObject?*?obj?=?msg.mediaObject;

    ????????NSString?*?strTitle?=?[NSString?stringWithFormat:@"微信請求App顯示內容"];
    ????????NSString?*?strMsg?=?[NSString?stringWithFormat:@"標題:%@?\n內容:%@?\n附帶信息:%@?\n縮略圖:%lu?bytes\n\n",?msg.title,?msg.description,?obj.extInfo,?msg.thumbData.length];

    ????????UIAlertView?*?alert?=?[[UIAlertView?alloc]?initWithTitle:strTitle?message:strMsg?delegate:self?cancelButtonTitle:@"OK"?otherButtonTitles:nil,?nil];
    ????????[alert?show];
    ????}
    ????else?if([req?isKindOfClass:[LaunchFromWXReq?class]])
    ????{
    ????????//從微信啟動App
    ????????NSString?*?strTitle?=?[NSString?stringWithFormat:@"從微信啟動"];
    ????????NSString?*?strMsg?=?@"這是從微信啟動的消息";
    ????????UIAlertView?*?alert?=?[[UIAlertView?alloc]?initWithTitle:strTitle?message:strMsg?delegate:self?cancelButtonTitle:@"OK"?otherButtonTitles:nil,?nil];
    ????????[alert?show];
    ????}
    }
    復制代碼

    onReq是微信終端向第三方程序發起請求,要求第三方程序響應。第三方程序響應完后必須調用sendRsp返回。在調用sendRsp返回時,會切回到微信終端程序界面。

    -(void)?onResp:(BaseResp*)resp
    ?{
    ?????NSString?*?strMsg?=?[NSString?stringWithFormat:@"errcode:%d",?resp.errCode];
    ?????NSString?*?strTitle;

    ?????if([resp?isKindOfClass:[SendMessageToWXResp?class]])
    ?????{
    ?????????strTitle?=?[NSString?stringWithFormat:@"發送媒體消息結果"];
    ?????}
    ?????if([resp?isKindOfClass:[PayResp?class]]){
    ?????????//支付返回結果,實際支付結果需要去微信服務器端查詢
    ?????????strTitle?=?[NSString?stringWithFormat:@"支付結果"];

    ?????????switch?(resp.errCode)?{
    ?????????????case?WXSuccess:
    ?????????????????strMsg?=?@"支付結果:成功!";
    ?????????????????NSLog(@"支付成功-PaySuccess,retcode?=?%d",?resp.errCode);
    ?????????????????break;

    ?????????????default:
    ?????????????????strMsg?=?[NSString?stringWithFormat:@"支付結果:失敗!retcode?=?%d,?retstr?=?%@",?resp.errCode,resp.errStr];
    ?????????????????NSLog(@"錯誤,retcode?=?%d,?retstr?=?%@",?resp.errCode,resp.errStr);
    ?????????????????break;
    ?????????}
    ?????}
    ?????UIAlertView?*?alert?=?[[UIAlertView?alloc]?initWithTitle:strTitle?message:strMsg?delegate:self?cancelButtonTitle:@"OK"?otherButtonTitles:nil,?nil];
    ?????[alert?show];
    ?}
    復制代碼

    如果第三方程序向微信發送了sendReq的請求,那么onResp會被回調。sendReq請求調用后,會切到微信終端程序界面。

  • 應用內購買(In-App Purchase)

    在應用程序內購買虛擬商品。如果你在App Store上銷售的應用程序,將收到支付金額的70%。

    相關資料

    支付流程

    配置App ID

  • 為應用建立建立一個不帶通配符的App ID
  • 用該App ID生成和安裝相應的Provisioning Profile文件。
  • 配置iTunes Connect

  • 填寫相關的稅務,銀行,聯系人信息

    參考鏈接:iOS App提交指南(二)-協議、稅務和銀行業務

  • 添加一個用于在sandbox付費的測試用戶

  • 用該App ID創建一個新的應用。

  • 創建應用內付費項目,選擇付費類型。

    App 內購買項目摘要填寫

  • 主要代碼實現

  • 在工程中引入 StoreKit.framework 和#import <StoreKit/StoreKit.h>

  • 獲得所有的付費Product ID列表。這個可以用常量存儲在本地,也可以由自己的服務器返回。

    //在內購項目中創建的商品單號
    #define?ProductID_IAP_FTHJ?@"com.1000phone.IAPDemo.fthj_purple"?//?方天畫戟?488元
    #define?ProductID_IAP_XYJ?@"com.1000phone.IAPDemo.xyj"?//?軒轅劍?6,498元
    #define?ProductID_IAP_JB?@"com.1000phone.IAPDemo.jb"?//?金幣?6元=6金幣
    復制代碼

    ?

  • 制作界面,展示所有的應用內付費項目。這些應用內付費項目的價格和介紹信息可以從App Store服務器請求,也可以是自己的服務器返回。向App Store查詢速度非常慢,通常需要2-3秒鐘,最好從服務器請求。

    -?(void)createViews
    {
    ????NSArray?*?buttonNames?=?@[@"軒轅劍?6498元",?@"方天畫戟?488元",?@"金幣6元=6金幣"];
    ????__weak?typeof(self)?weakSelf?=?self;
    ????[buttonNames?enumerateObjectsUsingBlock:^(NSString?*?buttonName,?NSUInteger?idx,?BOOL?*?stop)?{
    ????????UIButton?*?button?=?[UIButton?buttonWithType:UIButtonTypeSystem];
    ????????[weakSelf.view?addSubview:button];
    ????????button.frame?=?CGRectMake(100,?100?+?idx???*?60,?150,?50);
    ????????button.titleLabel.font?=?[UIFont?systemFontOfSize:18];
    ????????[button?setTitle:buttonName?forState:UIControlStateNormal];

    ????????//?設置tag值
    ????????button.tag?=?PAY_BUTTON_BEGIN_TAG?+?idx;
    ????????[button?addTarget:self?action:@selector(buyProduct:)?forControlEvents:UIControlEventTouchUpInside];
    ????}];
    }

    -?(void)buyProduct:(UIButton?*)?sender
    {

    }
    復制代碼

    ?

  • 當用戶點擊了一個IAP項目,我們先查詢用戶是否允許應用內付費。

    -?(void)buyProduct:(UIButton?*)?sender
    {
    ????self.buyType?=?sender.tag?-?PAY_BUTTON_BEGIN_TAG;
    ????if?([SKPaymentQueue?canMakePayments])?{
    ????????//?執行下面提到的第5步:
    ????????[self?requestProductData];
    ????????NSLog(@"允許程序內付費購買");
    ????}
    ????else
    ????{
    ????????NSLog(@"不允許程序內付費購買");
    ????????UIAlertView?*alerView?=??[[UIAlertView?alloc]?initWithTitle:@"提示"
    ????????????????????????????????????????????????????????????message:@"您的手機沒有打開程序內付費購買"
    ???????????????????????????????????????????????????????????delegate:nil?cancelButtonTitle:NSLocalizedString(@"關閉",nil)?otherButtonTitles:nil];

    ????????[alerView?show];

    ????}
    }
    復制代碼
  • 我們先通過該IAP的ProductID向AppStore查詢,獲得SKPayment實例,然后通過SKPaymentQueue的 addPayment方法發起一個購買的操作。

    //?下面的ProductId應該是事先在itunesConnect中添加好的,已存在的付費項目。否則查詢會失敗。
    -?(void)requestProductData?{
    ???NSLog(@"---------請求對應的產品信息------------");
    ???NSArray?*product?=?nil;
    ???switch?(self.buyType)?{
    ???????case?0:
    ???????????product?=?[NSArray?arrayWithObject:ProductID_IAP_XYJ];
    ???????????break;
    ???????case?1:
    ???????????product?=?[NSArray?arrayWithObject:ProductID_IAP_FTHJ];
    ???????????break;
    ???????case?2:
    ???????????product?=?[NSArray?arrayWithObject:ProductID_IAP_JB];
    ???????????break;
    ???}
    ???NSSet?*nsset?=?[NSSet?setWithArray:product];
    ???SKProductsRequest?*request=[[SKProductsRequest?alloc]?initWithProductIdentifiers:?nsset];
    ???request.delegate=self;
    ???[request?start];
    }

    #pragma?mark?-?SKProductsRequestDelegate
    //?收到的產品信息回調
    -?(void)productsRequest:(SKProductsRequest?*)request?didReceiveResponse:(SKProductsResponse?*)response{

    ???NSLog(@"-----------收到產品反饋信息--------------");
    ???NSArray?*myProduct?=?response.products;
    ???if?(myProduct.count?==?0)?{
    ???????NSLog(@"無法獲取產品信息,購買失敗。");
    ???????return;
    ???}
    ???NSLog(@"產品Product?ID:%@",response.invalidProductIdentifiers);
    ???NSLog(@"產品付費數量:?%d",?(int)[myProduct?count]);
    ???//?populate?UI
    ???for(SKProduct?*product?in?myProduct){
    ???????NSLog(@"product?info");
    ???????NSLog(@"SKProduct?描述信息%@",?[product?description]);
    ???????NSLog(@"產品標題?%@"?,?product.localizedTitle);
    ???????NSLog(@"產品描述信息:?%@"?,?product.localizedDescription);
    ???????NSLog(@"價格:?%@"?,?product.price);
    ???????NSLog(@"Product?id:?%@"?,?product.productIdentifier);
    ???}
    ???SKPayment?*?payment?=?[SKPayment?paymentWithProduct:myProduct[0]];
    ???NSLog(@"---------發送購買請求------------");
    ???[[SKPaymentQueue?defaultQueue]?addPayment:payment];

    }

    //彈出錯誤信息
    -?(void)request:(SKRequest?*)request?didFailWithError:(NSError?*)error{
    ???NSLog(@"-------彈出錯誤信息----------");
    ???UIAlertView?*alerView?=??[[UIAlertView?alloc]?initWithTitle:NSLocalizedString(@"Alert",NULL)?message:[error?localizedDescription]
    ??????????????????????????????????????????????????????delegate:nil?cancelButtonTitle:NSLocalizedString(@"Close",nil)?otherButtonTitles:nil];
    ???[alerView?show];

    }

    -(void)?requestDidFinish:(SKRequest?*)request
    {
    ???NSLog(@"----------反饋信息結束--------------");

    }
    復制代碼
  • 在viewDidLoad方法中,將購買頁面設置成購買的Observer。

    -?(void)viewDidLoad?{
    ????[super?viewDidLoad];
    ????[self?createViews];
    ????//?監聽購買結果
    ????[[SKPaymentQueue?defaultQueue]?addTransactionObserver:self];
    }

    -?(void)dealloc
    {
    ????[[SKPaymentQueue?defaultQueue]?removeTransactionObserver:self];
    }
    復制代碼
  • 當用戶購買的操作有結果時,就會觸發下面的回調函數,相應進行處理即可。

    #pragma?mark?-?SKPaymentTransactionObserver
    //?處理交易結果
    -?(void)paymentQueue:(SKPaymentQueue?*)queue?updatedTransactions:(NSArray?*)transactions?{
    ????for?(SKPaymentTransaction?*transaction?in?transactions)
    ????{
    ????????switch?(transaction.transactionState)
    ????????{
    ????????????case?SKPaymentTransactionStatePurchased://交易完成
    ????????????????NSLog(@"transactionIdentifier?=?%@",?transaction.transactionIdentifier);
    ????????????????[self?completeTransaction:transaction];
    ????????????????break;
    ????????????case?SKPaymentTransactionStateFailed://交易失敗
    ????????????????[self?failedTransaction:transaction];
    ????????????????break;
    ????????????case?SKPaymentTransactionStateRestored://已經購買過該商品
    ????????????????[self?restoreTransaction:transaction];
    ????????????????break;
    ????????????case?SKPaymentTransactionStatePurchasing:??????//商品添加進列表
    ????????????????NSLog(@"商品添加進列表");
    ????????????????break;
    ????????????default:
    ????????????????break;
    ????????}
    ????}

    }

    //?交易完成
    -?(void)completeTransaction:(SKPaymentTransaction?*)transaction?{
    ????NSString?*?productIdentifier?=?transaction.payment.productIdentifier;
    //????NSString?*?receipt?=?[transaction.transactionReceipt?base64EncodedString];
    ????if?([productIdentifier?length]?>?0)?{
    ????????//?向自己的服務器驗證購買憑證
    ????}

    ????//?Remove?the?transaction?from?the?payment?queue.
    ????[[SKPaymentQueue?defaultQueue]?finishTransaction:?transaction];

    }

    //?交易失敗
    -?(void)failedTransaction:(SKPaymentTransaction?*)transaction?{
    ????if(transaction.error.code?!=?SKErrorPaymentCancelled)?{
    ????????NSLog(@"購買失敗");
    ????}?else?{
    ????????NSLog(@"用戶取消交易");
    ????}
    ????[[SKPaymentQueue?defaultQueue]?finishTransaction:?transaction];
    }

    //?已購商品
    -?(void)restoreTransaction:(SKPaymentTransaction?*)transaction?{
    ????//?對于已購商品,處理恢復購買的邏輯
    ????[[SKPaymentQueue?defaultQueue]?finishTransaction:?transaction];
    }
    復制代碼
  • 服務器驗證憑證(Optional)。如果購買成功,我們需要將憑證發送到服務器上進行驗證。考慮到網絡異常情況,iOS端的發送憑證操作應該進行持久化,如果程序退出,崩潰或網絡異常,可以恢復重試。

  • 參考鏈接

  • iOS開發內購全套圖文教程
  • iOS應用內付費(IAP)開發步驟列表
  • iOS內購實現及測試Check List
  • 蘋果支付(? Pay)

    蘋果支付是一種在應用內運行的具有隱秘性和安全性非接觸式的支付方式。它允許觸摸付款,你可以用來購買實體商品和服務。

    Apple 不會存儲或共享客戶的實際信用卡和借記卡卡號,因此商家和 App 開發者無需負責管理和保護實際的信用卡和借記卡卡號。

    先決條件

    除了使用 PassKit 框架實施 Apple Pay 之外,您還必須:

    • 通過付款處理機構或網關設置一個帳戶。

    • 通過“證書、標識符和描述文件”(“Certificates, Identifiers & Profiles”)注冊一個商家 ID。

    • 生成一個 Apple Pay 證書,用于加密和解密付款令牌。

    • 在您的 App 中包括一個 Apple Pay 授權。

    • 遵循“應用審核準則”的第 29 節中列出的要求。

    • 遵循《App 審核準則》(“App Review Guidelines”)第 29 節中列出的要求。

    參考資料

  • 官方?Pay教程
  • Apple Pay 中文入門
  • ? Pay VS In-App Purchase

    ? PayIn-App Purchase
    框架PassKitStoreKit
    適用范圍實體商品(如食品雜貨、服裝和電器)和服務(如俱樂部會員、酒店預訂和活動門票)銷售虛擬商品,如適用于您的 App 的優質內容及訂閱數字內容;程序內的內容和功能性;程序內貨幣服務;數碼訂閱
    支付處理自己的支付平臺處理付款蘋果公司處理付款

    總結

    以上是生活随笔為你收集整理的iOS之支付的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    在线有码中文字幕 | 日韩一级成人av | 国产一级片免费播放 | 国产高清免费观看 | 国产成人一区三区 | 天海冀一区二区三区 | 国产日韩精品一区二区在线观看播放 | 日日碰狠狠添天天爽超碰97久久 | 99久久日韩精品免费热麻豆美女 | 91精品国产三级a在线观看 | 日日夜夜操av | 国产精品你懂的在线观看 | 久久激情久久 | 丁香婷婷激情 | 成人午夜电影网 | 人人澡人摸人人添学生av | 色鬼综合网 | 尤物九九久久国产精品的分类 | 亚洲狠狠丁香婷婷综合久久久 | 天堂视频中文在线 | 五月天激情电影 | 在线黄av| 国产原创中文在线 | 日韩高清在线一区 | 99热这里有 | 久久草av | 欧美 激情 国产 91 在线 | 国内精品久久久久久久久久 | 国产精品久久久久久久久久免费 | 国产成人一区三区 | 韩国三级av在线 | 国产伦精品一区二区三区照片91 | 天天视频色| 可以免费看av | 亚洲婷婷综合色高清在线 | 成人黄色中文字幕 | 亚洲精选99| 69av久久 | 蜜臀av性久久久久蜜臀av | 亚洲精品久久久蜜桃 | 色在线免费 | 超级碰99 | 久久6精品 | 人人超碰免费 | 一区二区三区在线观看中文字幕 | 亚洲在线观看av | 999久久久免费视频 午夜国产在线观看 | 在线免费观看的av网站 | 中文字幕不卡在线88 | 91福利小视频| 久草视频免费观 | 日韩在线视频线视频免费网站 | 狠狠的操你 | 色综合天天色综合 | 9草在线 | 亚洲欧美成人在线 | 狠狠狠色丁香婷婷综合久久88 | 婷婷五综合 | 香蕉视频在线免费 | 久久综合狠狠综合久久综合88 | 久久人人爽人人片 | 亚洲精品xxx | 91精品国产综合久久福利不卡 | 久草在线手机观看 | 性色av香蕉一区二区 | 日本一区二区免费在线观看 | 在线免费91 | 天天干 天天摸 天天操 | 在线精品视频在线观看高清 | 亚洲黄色网络 | 久久久精选 | 国产精品久久久久久久久免费看 | 亚洲综合一区二区精品导航 | 91免费在线播放 | 91亚色视频在线观看 | 国产又粗又猛又色又黄网站 | 91探花国产综合在线精品 | 欧美91精品 | 在线成人免费 | 国产精品久久久久久久妇 | 日日干天天操 | 亚洲精品乱码久久久久久蜜桃不爽 | 久久久久电影网站 | 麻豆网站免费观看 | 黄色午夜 | www日韩高清 | 国产午夜麻豆影院在线观看 | 热久久免费视频 | 免费在线国产视频 | 久久精品视频在线播放 | 色永久免费视频 | 日韩精品一区二区三区在线播放 | 91麻豆精品国产91久久久久久久久 | 91免费版在线 | 国产精品电影在线 | 就要干b | 国产第一页在线播放 | 天天操天天曰 | 亚洲香蕉在线观看 | 九色视频网址 | 久久久久久免费 | 特级西西人体444是什么意思 | 久久久久亚洲天堂 | 欧美a级在线免费观看 | 国产免费大片 | 成年人网站免费观看 | 国内精品久久久久影院男同志 | 在线黄网站 | 在线免费色视频 | 欧美少妇的秘密 | 免费视频久久久 | 日韩欧美一区二区三区视频 | 91成人免费观看视频 | 亚洲国产精品第一区二区 | 国产 视频 高清 免费 | 美女视频黄是免费的 | 韩国av一区二区三区 | 四虎成人精品在永久免费 | 国产高清免费观看 | 色资源二区在线视频 | 狠狠色综合欧美激情 | 国产精品一区二区62 | 亚洲精品色 | 日韩久久精品一区二区三区下载 | 亚洲黄色小说网 | 国产无区一区二区三麻豆 | 国产精品一区二区三区电影 | 黄色一级在线免费观看 | 精品久久久久一区二区国产 | 成年人免费在线观看 | 中文字幕一区二区三区四区视频 | 久久免费99精品久久久久久 | 丁香花在线视频观看免费 | 国产小视频在线观看免费 | 91视频a| 日韩精品久久久 | 婷婷色影院 | 亚洲精品理论片 | 99热这里是精品 | 黄色免费看片网站 | 国产91精品看黄网站在线观看动漫 | 91伊人影院 | 欧美精品久久久久久久 | 国产精品久久久久久久久久久久久久 | 亚洲精品黄色在线观看 | www.色com| 精品国产一区二区三区久久影院 | 日本中文乱码卡一卡二新区 | 精品女同一区二区三区在线观看 | 中文字幕在线播放第一页 | 久久久国产在线视频 | 日批视频在线 | 99在线观看 | 在线看av网址 | 91视频链接 | 久久在线播放 | 欧美日韩精品在线免费观看 | 懂色av一区二区在线播放 | 午夜精品久久久久久久爽 | 久久情侣偷拍 | 国产精品av免费在线观看 | 亚洲资源网 | 久草在线一免费新视频 | 国产一级在线看 | 午夜精品导航 | 国产二区视频在线观看 | 最近乱久中文字幕 | a在线免费观看视频 | 最新av免费在线观看 | 成 人 黄 色 片 在线播放 | 久久综合九色综合久久久精品综合 | 国产精品久久在线观看 | 久久人人97超碰com | 亚洲精品在线二区 | 久久精品美女视频 | 亚洲人成人99网站 | 天天做日日做天天爽视频免费 | 激情综合色播五月 | 欧美专区国产专区 | 国产精品一区久久久久 | 亚洲国产成人精品久久 | 91香蕉视频在线下载 | 国产在线精 | 国产亚洲成av片在线观看 | 国产精品久久久免费 | 久久精品视频观看 | 麻花豆传媒mv在线观看网站 | 少妇啪啪av入口 | 91人网站| 十八岁以下禁止观看的1000个网站 | 尤物一区二区三区 | 91黄色在线视频 | 在线观看深夜福利 | 欧美一级乱黄 | 一区二区丝袜 | 天天色天 | 天天爽综合网 | 麻豆 videos | 99精品一区二区三区 | 最近最新中文字幕 | 五月婷婷一区二区三区 | 成人午夜电影久久影院 | 久草在在线视频 | 亚洲 欧美 综合 在线 精品 | 日韩欧美中文 | 激情影院在线 | 少妇bbbb搡bbbb搡bbbb | 手机看片1042 | 国产91影院 | 欧美一区二区精美视频 | 日本特黄特色aaa大片免费 | 亚洲女欲精品久久久久久久18 | 精品一区二区在线播放 | 成人小视频在线免费观看 | 黄网站app在线观看免费视频 | 国产亚州精品视频 | 欧美成人在线免费 | 亚洲精品国产视频 | 免费福利片2019潦草影视午夜 | 久久超碰网 | 九九热视频在线免费观看 | 婷婷六月综合网 | 日日爽天天爽 | av在线激情 | 这里只有精品视频在线观看 | wwwwww国产| 97精品视频在线 | 亚洲黄色高清 | 高清在线观看av | 99久久精品免费看国产 | 在线电影a | 日日爽夜夜爽 | 天天躁日日躁狠狠躁av中文 | 天天综合天天综合 | 国产精品网址在线观看 | 久久精品精品电影网 | 国产精品免费视频久久久 | 黄色a视频免费 | 欧美性极品xxxx做受 | 久久精品4 | 亚洲高清视频在线 | 国产视频在线免费观看 | 五月婷社区 | 天天视频色版 | 美女在线免费观看视频 | 69国产成人综合久久精品欧美 | 精品麻豆入口免费 | 国产精品18久久久久久首页狼 | 亚洲精品视频网站在线观看 | 久久99热这里只有精品国产 | 91麻豆精品国产91久久久久久久久 | 国产精品久久久久毛片大屁完整版 | 麻豆视频在线播放 | 久久人人爽爽人人爽人人片av | 美州a亚洲一视本频v色道 | 色婷婷狠狠五月综合天色拍 | 美女精品在线观看 | 一区精品在线 | 国产成人精品女人久久久 | 中文字幕成人一区 | 中文字幕亚洲高清 | 国产精品 国内视频 | 91视频在线观看免费 | 欧美日韩中文在线 | 亚洲一级性 | 国产a视频免费观看 | 亚洲精品乱码久久 | 99热这里只有精品久久 | 一区二区三区污 | 国产va饥渴难耐女保洁员在线观看 | 日本精品视频网站 | av在线之家电影网站 | 五月婷亚洲 | 成年人国产在线观看 | 日韩在线看片 | 五月婷婷激情网 | 成人免费视频网 | 精品色999| 欧美另类人妖 | 狠狠狠狠狠狠狠狠干 | 99视频在线免费看 | 丁香五婷 | 中文字幕免费高清在线 | 97色在线观看免费视频 | 一级黄色大片在线观看 | 亚洲综合色激情五月 | 成人av高清 | 婷婷亚洲激情 | 亚洲另类视频在线 | 国产精品一区专区欧美日韩 | 久久99国产精品免费网站 | 欧美激情视频在线免费观看 | 日韩.com| 中文理论片 | 欧美日韩91 | 亚洲 成人 欧美 | 久久这里只有精品23 | 二区三区精品 | 在线免费高清 | 中文字幕你懂的 | 国产黄在线播放 | 亚洲爽爽网 | 黄色在线网站噜噜噜 | 亚a在线 | av电影免费在线看 | 日韩欧美一区二区三区视频 | 中文字幕文字幕一区二区 | 中文字幕免费观看全部电影 | 亚洲v欧美v国产v在线观看 | 亚洲天天在线日亚洲洲精 | 久久成人免费电影 | 人人揉人人揉人人揉人人揉97 | 一区二区免费不卡在线 | 丁香九月婷婷 | 色综合久久久久综合体桃花网 | www.天天草 | 久久久久久久久电影 | 欧美激情综合色综合啪啪五月 | 日韩不卡高清 | 97看片吧 | 97人人艹| 91成人免费在线视频 | 国偷自产视频一区二区久 | 国产亚洲激情视频在线 | 日韩免费电影一区二区三区 | 精品久久久久一区二区国产 | 在线观看视频你懂的 | 亚洲国产日韩精品 | 色亚洲网| 日韩剧情 | 天天射天天拍 | 国产精品久久久久久久电影 | 美女久久久| 蜜臀av性久久久久蜜臀av | 国产精品女同一区二区三区久久夜 | 91av在线免费观看 | 亚洲精品tv久久久久久久久久 | 欧美精品久久久久久久久免 | 在线观看中文字幕网站 | 亚洲国产理论片 | 美女又爽又黄 | 亚洲国产精久久久久久久 | 欧美在线观看小视频 | 四虎天堂 | 精品一区 在线 | 国产一区二区在线看 | 91成品视频| 国产日产精品久久久久快鸭 | 亚洲天堂网视频 | 国产精品久久久久影视 | 永久免费视频国产 | 久久网址 | 88av色| 色婷婷国产精品一区在线观看 | 97视频免费观看2区 亚洲视屏 | 在线激情网 | 国产精品一区欧美 | 久久久精品一区二区 | 在线观看www91 | 亚洲精品乱码久久久久久高潮 | 99超碰在线播放 | 国产美女久久久 | 五月婷在线观看 | 麻豆免费精品视频 | 久久玖 | 香蕉视频亚洲 | 91视频久久久久 | 91精品老司机久久一区啪 | 欧美一级免费黄色片 | 青草草在线视频 | 精品久久久久久久久久久久久久久久久久 | 麻豆mv在线观看 | 久久91久久久久麻豆精品 | 天天躁天天躁天天躁婷 | 三上悠亚在线免费 | 亚洲劲爆av| 欧美日韩精品电影 | 欧美国产日韩一区二区三区 | 国产亚洲亚洲 | 色婷婷av一区 | 尤物九九久久国产精品的分类 | 香蕉久久久久久久 | 久久视频在线视频 | 午夜国产一区 | 狠狠色丁香久久综合网 | 一区二区伦理 | 国产短视频在线播放 | 精品国内自产拍在线观看视频 | 国产成人在线免费观看 | 欧美国产日韩在线视频 | 色久网 | 日韩免费三区 | 色综合久久88色综合天天免费 | av在线免费播放网站 | 在线免费观看视频a | 国产小视频免费在线网址 | 欧美日韩中 | 国产精品v欧美精品 | 国产在线中文字幕 | 国产一区二区视频在线 | 人人爽人人 | 国产精品视频不卡 | 国产一区二区在线免费 | 天天色视频 | 久久99国产一区二区三区 | 激情影音先锋 | 日韩欧美在线观看一区二区三区 | 草樱av | 日韩成人欧美 | 国产精品视频线看 | 在线视频专区 | adc在线观看 | 久久综合中文字幕 | 一区二区精品在线 | 一区二区三区高清在线观看 | 日韩91av| 手机成人在线 | 日本性生活一级片 | 欧美日韩免费视频 | 99九九免费视频 | 国产破处精品 | 亚洲最新毛片 | 超碰在线观看99 | 欧美精彩视频在线观看 | 日韩精品视频一二三 | 五月婷婷丁香激情 | 六月婷婷久香在线视频 | 亚洲精品字幕在线观看 | 欧美污污网站 | 欧洲一区精品 | 狠狠色丁香久久婷婷综合丁香 | 国产精品18videosex性欧美 | 人人爱夜夜操 | 成人午夜电影在线 | 男女视频国产 | 国产69久久久 | 国产在线a免费观看 | 久久精品国产第一区二区三区 | 99精品影视 | 久草在| 操操操影院 | 在线观看黄av | 欧美日韩在线精品一区二区 | 国产99久久久国产精品成人免费 | 欧美日韩精品在线 | 日韩大片免费在线观看 | 天天操天天色天天射 | 精品影院一区二区久久久 | 一区二区三区四区精品视频 | 天天插天天干 | 欧美日韩在线精品 | 中文字幕资源在线观看 | 在线观看的黄色 | a黄色大片| 青青草国产免费 | av在线电影免费观看 | 日本亚洲国产 | 欧美一级片在线观看视频 | 国产一区二区三区黄 | 日韩欧美精品一区 | 日韩免费中文 | 亚洲精品高清一区二区三区四区 | 不卡电影免费在线播放一区 | 婷婷视频 | 久久视频网址 | av福利网址导航 | 国产精品视频一二三 | av字幕在线| 免费看的黄色录像 | 欧美日韩精品电影 | 日日夜夜精品视频 | 91在线精品一区二区 | 免费男女羞羞的视频网站中文字幕 | 日韩精品免费一区二区三区 | 国产精品九色 | 国产最新福利 | 中文字幕在线观看视频网站 | 国产高清在线精品 | 国产高h视频 | 欧美日韩国产在线 | 久久久久福利视频 | 日本中文一区二区 | 国产精品久久久久久69 | 免费看一及片 | 九九在线国产视频 | 好看av在线 | 一级片视频在线 | 中文字幕资源在线观看 | 国产精品久久久久久一区二区三区 | 天天操天天操天天操天天操 | 欧美一级免费片 | 国产男男gay做爰 | 丁香视频五月 | av在线专区 | 午夜黄色影院 | 亚洲成年片 | 天天干天天干天天 | 最近中文字幕完整视频高清1 | 在线天堂视频 | av天天澡天天爽天天av | 欧美日韩一区二区在线观看 | 伊人婷婷久久 | 五月香视频在线观看 | 日韩午夜剧场 | 亚洲乱码精品久久久久 | 国产精品99久久久久久小说 | 91色影院| 在线观看韩国av | 亚洲不卡123 | 免费精品视频在线 | 免费久久精品视频 | 亚洲三级在线 | 亚洲精品免费观看视频 | 丝袜一区在线 | 九九在线国产视频 | 精品国内自产拍在线观看视频 | 九九av| 99免费在线观看视频 | 国产在线观看污片 | 久草在线在线视频 | 欧美福利在线播放 | 狠狠色丁香九九婷婷综合五月 | 久久另类视频 | 国产成人61精品免费看片 | 日韩精品最新在线观看 | 999视频精品| 69国产精品成人在线播放 | 四虎影视国产精品免费久久 | 天天射天天 | 午夜狠狠操 | 男女男视频 | 国产亚洲视频在线免费观看 | 国语精品免费视频 | av在线等| 在线色亚洲 | 亚洲成aⅴ人片久久青草影院 | 国产精品99久久久久久有的能看 | av电影在线播放 | 精品亚洲视频在线 | 国产1区2 | 欧美精品一区在线 | 网站你懂的 | 中文一区二区三区在线观看 | 国产一区国产二区在线观看 | 天天综合久久 | 欧美一级特黄高清视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 手机成人在线电影 | 天天舔夜夜操 | 国产精品久久毛片 | 黄色三级在线看 | 国产美女黄网站免费 | 九九天堂 | 超碰日韩在线 | 永久黄网站色视频免费观看w | 亚洲视频精品在线 | 天天操天天摸天天射 | 国产黄网站在线观看 | 国语对白少妇爽91 | 在线观看亚洲精品视频 | 日韩av视屏在线观看 | 婷婷免费视频 | 成人在线中文字幕 | 国产精品中文字幕在线观看 | 色婷婷综合在线 | 国产xxxx| 成人精品视频久久久久 | 国产精品理论在线观看 | 国产aaa免费视频 | 亚洲经典在线 | 在线一级片| 日日夜夜综合网 | 精品视频9999 | 亚洲午夜小视频 | 久久久影片 | 97超碰中文 | 成人国产精品久久久久久亚洲 | 国产无套精品久久久久久 | 色婷婷99 | 国产v欧美 | 中文av在线天堂 | 国产黄色精品网站 | 国产丝袜一区二区三区 | 六月天综合网 | 国产一级在线看 | 久久福利国产 | 精品亚洲免费 | 国内精品久久久久影院日本资源 | 91桃色视频| 日韩免费中文字幕 | 国产一级二级三级在线观看 | 国产精品18毛片一区二区 | 国产亚州av | www.激情五月.com | 91成版人在线观看入口 | 国产一区视频在线观看免费 | 激情欧美一区二区三区免费看 | 在线免费视频 你懂得 | 天天插天天狠 | 成人九九视频 | 亚洲精品午夜久久久久久久 | 六月丁香婷 | 久久av中文字幕片 | 色综合婷婷久久 | 国产高清综合 | 日韩精品三区四区 | 国产精品久久久久国产精品日日 | 婷婷丁香视频 | 久久久久国产一区二区三区 | 欧美国产一区在线 | 亚洲国产av精品毛片鲁大师 | 婷婷日日 | 天天搞天天| 久久精品草 | 91av电影在线观看 | 91av久久| av字幕在线 | 成在线播放 | 亚洲国产成人久久 | 免费日韩视 | 成人av片免费观看app下载 | 91热精品 | 在线观看91网站 | bbw av| 五月天六月婷 | 中文字幕在线网 | 青青河边草观看完整版高清 | 国内视频在线 | 香蕉影院在线 | 国产专区欧美专区 | 久久久久亚洲精品成人网小说 | 久操视频在线 | 国产一区二区三区免费在线 | 午夜色性片 | 五月综合激情婷婷 | 高清久久久 | 国产在线91精品 | 福利视频在线看 | 精品黄色在线观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 免费av网站在线看 | 一区二区三区www | 日韩中字在线 | 婷婷在线不卡 | 婷婷久久亚洲 | 91麻豆精品国产91久久久久久久久 | 成人免费观看网址 | 婷婷久久精品 | 亚洲国产精品小视频 | 免费在线观看黄网站 | 五月天色丁香 | 色www永久免费 | 69国产盗摄一区二区三区五区 | 超碰av在线播放 | 少妇bbb搡bbbb搡bbbb | 婷婷久久久 | 在线一级片 | 中文字幕在线观看完整版电影 | 日韩av中文字幕在线免费观看 | 色播99| 人人爽人人爽人人爽人人爽 | 国产不卡在线看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 天天插天天色 | 色综合天天色综合 | 色a在线观看 | 99激情网| 狠狠干 狠狠操 | 国产日韩欧美在线观看视频 | 黄网站色欧美视频 | 好看的国产精品视频 | 国产不卡视频在线播放 | 国产视频在线免费 | 欧美另类性 | 国产黄色片免费 | 亚洲午夜精品久久久久久久久 | 中文字幕精品三级久久久 | 91在线看视频免费 | 成人av资源网 | 97精品视频在线播放 | 国产精品白虎 | 午夜三级理论 | 久久只有精品 | 国产精品免费观看网站 | 99成人精品 | 免费日韩一级片 | 国产精品久久久久久久久久免费看 | 免费观看的av网站 | 男女拍拍免费视频 | 午夜狠狠操 | 国产精品一区二区在线观看免费 | 国内综合精品午夜久久资源 | 亚洲一区av | 久久视频国产精品免费视频在线 | 国内久久久 | 91久久影院| 免费欧美 | 久久久久久久久久久久亚洲 | 中文字幕在线观看免费观看 | 亚洲精品福利在线 | 色综合久久久久 | 国内精品久久久久久久久久清纯 | 国产精品免费一区二区 | 伊人狠狠色丁香婷婷综合 | 精品成人国产 | 美女一级毛片视频 | 欧美视频www | 天天爽夜夜爽人人爽一区二区 | 欧美日韩性视频 | 天天操天天舔天天爽 | 国产大陆亚洲精品国产 | 免费看v片| 国产成视频在线观看 | 天天操天天干天天综合网 | 中文字幕一二 | 1024手机在线看 | 久99久精品视频免费观看 | 久久久精品小视频 | 日韩免费视频网站 | 久久夜色精品国产欧美乱极品 | 视频三区在线 | 色综合色综合久久综合频道88 | 日韩视频在线播放 | 在线观看不卡视频 | 久久久久久蜜av免费网站 | 99在线视频免费观看 | 亚洲一区二区高潮无套美女 | 午夜久久美女 | 久久观看免费视频 | 黄色av成人在线观看 | 最近日本韩国中文字幕 | 高清色免费| 99精品视频在线播放免费 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产中年夫妇高潮精品视频 | 欧美色综合 | 日韩精品一区二区免费 | 久久精品国产亚洲aⅴ | 国产精品资源在线 | 九九精品久久久 | av高清在线观看 | 日本少妇高清做爰视频 | 欧美日韩在线免费观看 | 91污在线 | 在线电影 你懂得 | 亚洲精品久久久久久中文传媒 | 99精品视频免费在线观看 | 国产一区二区电影在线观看 | 人人爽人人爽人人片av | 亚洲精选视频免费看 | 欧美少妇18p | 二区三区在线视频 | 五月花激情 | 欧美乱淫视频 | 四虎在线免费观看 | 亚洲伊人第一页 | 国产在线黄 | 国产va饥渴难耐女保洁员在线观看 | 成人九九视频 | 91精品在线观看入口 | 国产精品99在线播放 | 亚州av免费 | 久久精品精品电影网 | 久久精品99久久久久久2456 | 中文字幕在线观看视频一区二区三区 | 亚洲国产精品va在线看黑人 | 一本一本久久aa综合精品 | 亚洲成人频道 | 亚洲精品国产品国语在线 | 婷婷国产一区二区三区 | 怡红院成人在线 | 天天干干 | 91在线看网站| 国产无遮挡又黄又爽在线观看 | 久久夜夜操| 国产一区欧美一区 | 在线不卡的av | 欧美一级欧美一级 | 欧美精品久久久久久久亚洲调教 | 主播av在线 | 九色激情网 | 久久成人在线视频 | 亚洲国产精品成人综合 | 手机av电影在线观看 | 久久爱影视i | 亚洲爽爽网 | 中文字幕日韩电影 | 97免费在线观看视频 | 18久久久| 免费日韩一区 | 国产亚洲免费的视频看 | 日韩精品一区二区三区三炮视频 | 精品国产一区二区三区不卡 | 91精品在线视频观看 | 欧美一级片在线免费观看 | caobi视频 | 人人要人人澡人人爽人人dvd | 99免费看片 | 免费在线激情电影 | 天天骚夜夜操 | 中文字幕在线观看你懂的 | 久草网站在线 | 手机在线永久免费观看av片 | 婷婷午夜 | 国产91精品一区二区 | 久久精品中文字幕一区二区三区 | 国产精品黑丝在线观看 | 超碰在线最新网址 | 国产精品igao视频网网址 | 超碰在线观看97 | 精品久久久久久一区二区里番 | 国产在线中文 | 99热这里只有精品久久 | 欧美久久久久久久久久 | 最新午夜电影 | 精品视频99 | 国产操在线 | 91视频91自拍| 成年人免费在线观看 | 五月天视频网站 | 涩av在线 | 日韩av资源站 | 四虎国产精 | 91精品成人久久 | 日韩r级电影在线观看 | 国产 欧美 在线 | 97国产在线视频 | 久久字幕精品一区 | 日躁夜躁狠狠躁2001 | 中文字幕亚洲欧美日韩2019 | 成人三级视频 | 五月天天av | 99在线视频网站 | 成年人黄色免费网站 | www.天天色 | 久久这里有| 在线免费观看成人 | 成人一区在线观看 | 日韩美女一级片 | 国产精品videoxxxx | 精品国产自在精品国产精野外直播 | 国产成人一区二区三区 | 国产视频在线观看一区二区 | 色人久久| 亚洲综合五月 | 国产精品美女在线观看 | 国产在线精品国自产拍影院 | 97理论电影 | 2024av| av在线影片 | 丁香伊人网 | 日韩电影在线观看一区二区 | 精品久久电影 | 国产精品视屏 | 精品一区二区精品 | 超碰午夜 | 色综合天天射 | 在线视频 你懂得 | 亚洲一区二区视频在线播放 | 亚洲一级免费电影 | 粉嫩高清一区二区三区 | 久久久不卡影院 | 色婷婷成人 | 欧美色噜噜噜 | 久久不卡视频 | 久久精品久久久久 | 亚洲国产精品第一区二区 | 欧美日性视频 | 亚洲影院一区 | 亚洲乱码精品久久久久 | 亚洲成人资源在线观看 | 又长又大又黑又粗欧美 | 久久都是精品 | 一区二区三区高清在线观看 | 免费人成网 | 五月激情av| 国产精品区免费视频 | 日韩av中文在线观看 | 国产精品免费观看久久 | 亚洲精品福利视频 | 久久视频在线观看 | 成人教育av| 在线日韩中文 | 欧美a级在线播放 | www.五月婷婷 | 天天干天天干 | 香蕉视频亚洲 | 久久国产剧场电影 | 中文字幕丰满人伦在线 | 日日操操| 黄色天堂在线观看 | 毛片在线播放网址 | 国内精品久久久久久久久久 | 日本中文字幕免费观看 | 国产精品麻豆果冻传媒在线播放 | 久久国产品 | 91香蕉视频黄色 | 欧美一级性 | 色com| 久久九九精品久久 | 精品99久久 | 天天插天天干天天操 | 中文字幕高清免费日韩视频在线 | 久久天天躁夜夜躁狠狠85麻豆 | 欧美日韩1区 | 久久久噜噜噜久久久 | 色婷婷丁香 | 午夜黄色影院 | 日韩精品在线播放 | 成人影片免费 | 亚洲精品视频中文字幕 | 免费看片网址 | 免费观看版 | jizzjizzjizz亚洲| 欧美日韩国产一区二区三区在线观看 | 亚洲毛片在线观看. | 国产精品久久久久久久久免费 | 亚洲 在线| 国产a级片免费观看 | 黄色一级在线视频 | a极黄色片 | 国产成人精品一区二区三区在线观看 | 看黄色91 | 国产一级在线看 | 看毛片网站 | 伊人五月天婷婷 | 久久草在线免费 | 在线免费观看黄色 | 天天天干天天天操 | 久久免费视频精品 | 一本一本久久a久久精品牛牛影视 | 天天综合操 | 免费不卡中文字幕视频 | 免费在线激情电影 | 精品久久久久久久久久久久久久久久久久 | 久久久精品国产一区二区电影四季 | 亚洲伊人网在线观看 | 国产乱对白刺激视频不卡 | 国产精品aⅴ | 岛国av在线免费 | 天天av综合网 | 久久99久久99久久 | 成人免费一区二区三区在线观看 | 久久成年人视频 | 欧美韩国在线 | www.亚洲精品在线 | 精品国模一区二区三区 | 97在线看片 | 久久 地址 | 久草在线视频首页 | 在线观看亚洲专区 | 久久久免费电影 | 日韩精品久久一区二区三区 | 国产免费观看久久黄 | 天堂av在线网站 | 天天色天天射综合网 | 99在线观看视频 | 日本性动态图 | 中文字幕免费播放 | 成人在线观看av | 亚洲精品视频在线观看免费视频 | 日本精品久久久久影院 | 国产小视频在线免费观看视频 | 国产精品久久久av | 18国产精品福利片久久婷 | av九九 | 成人在线视频在线观看 | 人人草在线视频 | 色视频网站免费观看 | 国产高清成人在线 | 亚洲涩涩网站 | 日韩三区在线观看 | 免费成人在线观看 | 欧美另类网站 | 中文字幕第一页在线 | a黄色 | 色网站在线 | 在线观看免费一级片 | 国产手机在线观看视频 | 国产成人精品一区二区三区网站观看 | 天天操天天添天天吹 | 国产一区二区三区网站 | 91看片淫黄大片一级在线观看 | 人人插人人草 | 玖玖在线资源 | 亚洲香蕉视频 | 91精选在线 | 97视频在线免费 | 国产黄色一级大片 | 亚洲一级黄色av | 久久网址 | 免费观看国产成人 | 免费在线观看视频a | 99精品热视频 | 在线观看你懂的网站 | 久久综合亚洲鲁鲁五月久久 | 欧美激情综合网 | 三级黄色欧美 |