App內購項目的App Store推廣

來源: 胡東東博客
作者:懶豬醬
時間:2021-01-13
17849
今天說一下內購項目在App Store的推廣和支持方式。

今天說一下內購項目在App Store的推廣和支持方式

在App Store中搜索某個軟件的時候,比如QQ瀏覽器,在搜索列表和詳情中都會顯示內購的項目,下面就說一下如何配置。

640.jpg

App Store后臺內購項目的配置

首先選擇需要顯示的內購項目,將該內購項目中的App Store推廣的圖片上傳一下

640 (1).jpg

然后到App Store推廣中,選擇需要推廣的項目展示

640 (2).jpg

代碼中的配置

如果你看到了上面黃色的提示

無法在App Store上宣傳這些App內購買項目,因為您最新的已批準二進制文件中不包含SKPaymentTransactionObserver方法。

那就是因為沒有在代碼中實現(xiàn)這個代理,這里以《iOS的應用內支付In-app purchase的開發(fā)》中寫的支付類HDPayTools為例

首先在HDPayTools中,實現(xiàn)-(BOOL)paymentQueue:(SKPaymentQueue*)queue shouldAddStorePayment:(SKPayment*)payment forProduct:(SKProduct*)product這個代理函數(shù),這個是在App Store發(fā)起購買的時候會有回調。

就像開發(fā)文檔中說的

·如果返回值為true,那就是在打開app時直接調用購買確認的彈窗,讓用戶輸入密碼或者指紋等確認購買

·如果返回值為false,那就是只打開app,但是并不會直接調用購買的彈窗,相當于只是給了你一個product的訂單,你可以后續(xù)自己處理這個訂單

在App Store推廣購買和用戶手動點擊購買的區(qū)別:

用戶在應用中自己點擊購買

如果用戶在你應用中手動點擊購買,那么就是調用的支付,自己創(chuàng)建訂單和請求

-(void)startPayWithProductID:(NSString*)productID withCompleteHandler:(paySuccess)paySuccessHandler{//下單

[SVProgressHUDshowWithStatus:nil];

self.paySuccessHandler=paySuccessHandler;

self.m_productID=productID;

NSSet*productIDs=[NSSetsetWithObject:_m_productID];

SKProductsRequest*request=[[SKProductsRequestalloc]initWithProductIdentifiers:productIDs];

request.delegate=self;

[request start];

}

用戶在App Store的推廣中購買

如果是在App Store推廣購買,那么就是蘋果直接創(chuàng)建好了訂單和請求,然后直接在回調函數(shù)中返回給你,如果這個回調函數(shù)返回值為true,那么就是直接發(fā)起了購買請求,如果返回值為false,就是取消了這個購買請求,返回值相當于[request start];這一步

這兩種方式只是發(fā)起的方式不同,其他購買流程是一樣的,不需要再重新寫,在這個回調中只需要根據(jù)返回值去決定是否直接彈出購買。

回調函數(shù)的實現(xiàn)

所以那個回調函數(shù)的實現(xiàn)可以按照下面這樣來寫,寫在HDPayTools.m中:

//從App Store支付

-(BOOL)paymentQueue:(SKPaymentQueue*)queue shouldAddStorePayment:(SKPayment*)payment forProduct:(SKProduct*)product{self.paySuccessHandler=^(BOOL paySuccess){

if(paySuccess){

///在這個回調中去實現(xiàn)購買之后的流程

///...

[SVProgressHUDshowSuccessWithStatus: "購買成功"];

}

};

//根據(jù)product.productIdentifier去判斷是否去直接彈出購買彈窗

if([product.productIdentifier isEqualToString:kHDHighVipProduct]){returntrue;

}

return false;

}

打開時注冊監(jiān)聽

既然監(jiān)聽的實現(xiàn)寫好了,那么就需要去監(jiān)聽App Store發(fā)起支付時的回調了,在AppDelegate.m中,在程序打開時候去創(chuàng)建一個監(jiān)聽者,因為我已經在HDPayTools的init中,直接寫了[[SKPaymentQueuedefaultQueue]addTransactionObserver:self];,所以只要初始化就行了

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{if(!self.payTools){

self.payTools=[[HDPayToolsalloc]init];

}

//....

}

這樣就可以了,當有App Store發(fā)起購買的時候,就可以監(jiān)聽到了。

測試

修改下面的鏈接地址,然后在safari瀏覽器打開,就可以測試從App Store發(fā)起購買了。其中鏈接中的bundleId修改為你自己應用的bundleId,比如com.hudongdong.blog,productId修改為你創(chuàng)建的商品的id

itms-services://?action=purchaseIntent&bundleId=bundleId&productIdentifier=productId

立即登錄,閱讀全文
版權說明:
本文內容來自于胡東東博客,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家