App內(nèi)購(gòu)項(xiàng)目的App Store推廣,app store推廣App內(nèi)購(gòu)項(xiàng)目的App Store推廣今天說(shuō)一下內(nèi)購(gòu)項(xiàng)目在App Store的推廣和支持方式在App Store中搜索某個(gè)軟件的時(shí)候,比如QQ瀏覽器,在搜索列表和詳情中都會(huì)顯示內(nèi)購(gòu)的項(xiàng)目,下面就說(shuō)一下如何配置。App Store后臺(tái)內(nèi)購(gòu)項(xiàng)目的配置首先選擇需要......
今天說(shuō)一下內(nèi)購(gòu)項(xiàng)目在App Store的推廣和支持方式
在App Store中搜索某個(gè)軟件的時(shí)候,比如QQ瀏覽器,在搜索列表和詳情中都會(huì)顯示內(nèi)購(gòu)的項(xiàng)目,下面就說(shuō)一下如何配置。
App Store后臺(tái)內(nèi)購(gòu)項(xiàng)目的配置
首先選擇需要顯示的內(nèi)購(gòu)項(xiàng)目,將該內(nèi)購(gòu)項(xiàng)目中的App Store推廣的圖片上傳一下
然后到App Store推廣中,選擇需要推廣的項(xiàng)目展示
代碼中的配置
如果你看到了上面黃色的提示
無(wú)法在App Store上宣傳這些App內(nèi)購(gòu)買(mǎi)項(xiàng)目,因?yàn)槟钚碌囊雅鷾?zhǔn)二進(jìn)制文件中不包含SKPaymentTransactionObserver方法。
那就是因?yàn)闆](méi)有在代碼中實(shí)現(xiàn)這個(gè)代理,這里以《iOS的應(yīng)用內(nèi)支付Inapp purchase的開(kāi)發(fā)》中寫(xiě)的支付類(lèi)HDPayTools為例
首先在HDPayTools中,實(shí)現(xiàn)(BOOL)paymentQueue:(SKPaymentQueue*)queue shouldAddStorePayment:(SKPayment*)payment forProduct:(SKProduct*)product這個(gè)代理函數(shù),這個(gè)是在App Store發(fā)起購(gòu)買(mǎi)的時(shí)候會(huì)有回調(diào)。
就像開(kāi)發(fā)文檔中說(shuō)的
·如果返回值為true,那就是在打開(kāi)app時(shí)直接調(diào)用購(gòu)買(mǎi)確認(rèn)的彈窗,讓用戶(hù)輸入密碼或者指紋等確認(rèn)購(gòu)買(mǎi)
·如果返回值為false,那就是只打開(kāi)app,但是并不會(huì)直接調(diào)用購(gòu)買(mǎi)的彈窗,相當(dāng)于只是給了你一個(gè)product的訂單,你可以后續(xù)自己處理這個(gè)訂單
在App Store推廣購(gòu)買(mǎi)和用戶(hù)手動(dòng)點(diǎn)擊購(gòu)買(mǎi)的區(qū)別:
用戶(hù)在應(yīng)用中自己點(diǎn)擊購(gòu)買(mǎi)
如果用戶(hù)在你應(yīng)用中手動(dòng)點(diǎn)擊購(gòu)買(mǎi),那么就是調(diào)用的支付,自己創(chuàng)建訂單和請(qǐng)求
(void)startPayWithProductID:(NSString*)productID withCompleteHandler:(paySuccess)paySuccessHandler{//下單
[SVProgressHUDshowWithStatus:nil];
self.paySuccessHandler=paySuccessHandler;
self.mproductID=productID;
NSSet*productIDs=[NSSetsetWithObject:mproductID];
SKProductsRequest*request=[[SKProductsRequestalloc]initWithProductIdentifiers:productIDs];
request.delegate=self;
[request start];
}
用戶(hù)在App Store的推廣中購(gòu)買(mǎi)
如果是在App Store推廣購(gòu)買(mǎi),那么就是蘋(píng)果直接創(chuàng)建好了訂單和請(qǐng)求,然后直接在回調(diào)函數(shù)中返回給你,如果這個(gè)回調(diào)函數(shù)返回值為true,那么就是直接發(fā)起了購(gòu)買(mǎi)請(qǐng)求,如果返回值為false,就是取消了這個(gè)購(gòu)買(mǎi)請(qǐng)求,返回值相當(dāng)于[request start];這一步
這兩種方式只是發(fā)起的方式不同,其他購(gòu)買(mǎi)流程是一樣的,不需要再重新寫(xiě),在這個(gè)回調(diào)中只需要根據(jù)返回值去決定是否直接彈出購(gòu)買(mǎi)。
回調(diào)函數(shù)的實(shí)現(xiàn)
所以那個(gè)回調(diào)函數(shù)的實(shí)現(xiàn)可以按照下面這樣來(lái)寫(xiě),寫(xiě)在HDPayTools.m中:
//從App Store支付
(BOOL)paymentQueue:(SKPaymentQueue*)queue shouldAddStorePayment:(SKPayment*)payment forProduct:(SKProduct*)product{self.paySuccessHandler=^(BOOL paySuccess){
if(paySuccess){
///在這個(gè)回調(diào)中去實(shí)現(xiàn)購(gòu)買(mǎi)之后的流程
///...
[SVProgressHUDshowSuccessWithStatus: 購(gòu)買(mǎi)成功];
}
};
//根據(jù)product.productIdentifier去判斷是否去直接彈出購(gòu)買(mǎi)彈窗
if([product.productIdentifier isEqualToString:kHDHighVipProduct]){returntrue;
}
return false;
}
打開(kāi)時(shí)注冊(cè)監(jiān)聽(tīng)
既然監(jiān)聽(tīng)的實(shí)現(xiàn)寫(xiě)好了,那么就需要去監(jiān)聽(tīng)App Store發(fā)起支付時(shí)的回調(diào)了,在AppDelegate.m中,在程序打開(kāi)時(shí)候去創(chuàng)建一個(gè)監(jiān)聽(tīng)者,因?yàn)槲乙呀?jīng)在HDPayTools的init中,直接寫(xiě)了[[SKPaymentQueuedefaultQueue]addTransactionObserver:self];,所以只要初始化就行了
(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{if(!self.payTools){
self.payTools=[[HDPayToolsalloc]init];
}
//....
}
這樣就可以了,當(dāng)有App Store發(fā)起購(gòu)買(mǎi)的時(shí)候,就可以監(jiān)聽(tīng)到了。
測(cè)試
修改下面的鏈接地址,然后在safari瀏覽器打開(kāi),就可以測(cè)試從App Store發(fā)起購(gòu)買(mǎi)了。其中鏈接中的bundleId修改為你自己應(yīng)用的bundleId,比如com.hudongdong.blog,productId修改為你創(chuàng)建的商品的id
itmsservices:// action=purchaseIntentbundleId=bundleIdproductIdentifier=productId
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問(wèn)題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問(wèn)
微信掃一掃
馬上聯(lián)系在線顧問(wèn)
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部