少妇伦子伦精品无吗,国产在线精品一区在线观看,精品久久久久久无码专区不卡,99久久免费国产精精品

Hero Circle Shape
Hero Moon Shape
Hero Right Shape
比特派錢(qián)包華為安裝教程|內(nèi)購(gòu)插件

比特派錢(qián)包華為安裝教程|內(nèi)購(gòu)插件

  • 作者: 比特派錢(qián)包華為安裝教程
  • 2024-03-08 02:22:31

iap26最強(qiáng)內(nèi)購(gòu)插件 | 最簡(jiǎn)潔的中文源

iap26最強(qiáng)內(nèi)購(gòu)插件 | 最簡(jiǎn)潔的中文源

Cydiakk源

關(guān)于我們

官方Q群

官方主頁(yè)

官方博客

展開(kāi)

首頁(yè)

博客

登錄

Cydiakk中文源?

首頁(yè)

資源列表

技術(shù)文章

關(guān)于我們

資源列表/[插件 ]

您未登錄賬號(hào)

iap26最強(qiáng)內(nèi)購(gòu)插件

軟件版本:0.0.2

支持設(shè)備:

iPhone

iPad

文件大小:25.45 KB

支持版本:iOS 11.0 ~ iOS 15.6

?

提供作者:JustinPet26

下載數(shù)量:59245次??????????總下載量:61958次

收藏?cái)?shù)量:392次

?

Cydiakk中文源?

https://apt.cydiakk.com/

5050

資源

494343

粉絲

1654477

人氣

去看看

軟件內(nèi)容

掃描二維碼下載

請(qǐng)確保到

添加Cydiakk中文源?

刷新列表 以后再掃描二維碼下載

軟件描述:一款破解APP超強(qiáng)內(nèi)購(gòu)插件

軟件簡(jiǎn)介:

一款破解APP超強(qiáng)內(nèi)購(gòu)插件

===============

內(nèi)購(gòu)是最強(qiáng)的放心產(chǎn)品

===============

點(diǎn)擊購(gòu)買(mǎi),然后點(diǎn)擊取消

=================

即可內(nèi)購(gòu) ,千萬(wàn)別點(diǎn)擊確認(rèn)

更新說(shuō)明:

屏幕截圖

搜索

最新上傳更多

Sushi音樂(lè)模幅

83下載 / 1.0版本

2024-03-07 00:23:44發(fā)布

No2Theft iOS 16設(shè)備防盜系統(tǒng)

50下載 / 1.1.1版本

2024-03-07 00:23:42發(fā)布

Latchkey鎖頭自定義

72下載 / 2.3.2版本

2024-03-07 00:23:20發(fā)布

BioProtect XS 面容/指紋加密【破解版】

34下載 / 4.6-229版本

2024-03-07 00:23:14發(fā)布

最新下載更多

Diatrus Installer為unc0ver安裝Sileo

2970下載 / 0.0001版本

2024-03-08 02:21:37發(fā)布

CCLess++控制中心模塊

3481下載 / 1.8.2版本

2024-03-08 02:21:29發(fā)布

阿凡達(dá)屏蔽助手

32524下載 / 1.0.0.4-4版本

2024-03-08 02:20:59發(fā)布

GoodWiFi無(wú)線WiFi增強(qiáng)

1765下載 / 1.2版本

2024-03-08 02:20:46發(fā)布

廣告終結(jié)者

3727下載 / 2.3.1版本

2024-03-08 02:20:43發(fā)布

源主推薦

MCPatch屏蔽OTA更新

允許安裝iOS12屏蔽OTA更新描述文件

新騰翔嘉麗圓縮小版

好看的騰翔嘉麗圓縮小版字體

Bubble 主題

精致的Bubble主題,圖標(biāo)涵蓋464個(gè)

Unc&雷神&Ele 最新防凍屏插件

完美解決11系統(tǒng)全系列越獄工具神經(jīng)性卡死、假死、凍結(jié)

STMoon 超好看的單色主題[VIP5專享]

超好看的單色輪廓主題

MaxiX 主題 [VIP5專享]

好看的多彩主題

BlackOrs 2 主題 [VIP5專享]

超精美的主題 兼容7.0-11.4系統(tǒng)

Amara XI 主題 [VIP5專享]

超精美的主題 兼容7.0-11.4系統(tǒng)

旗下網(wǎng)站

博客

|

Cydiakk中文源

|

版權(quán)與免責(zé)聲明

粵ICP備18011282號(hào)-4

Copyright 版權(quán)所有 ? 2017-2024 CydiaKK.Com ?. All rights reserved. Cydiakk中文源?版權(quán)或產(chǎn)權(quán)保護(hù)

返回頂部

iOS 內(nèi)購(gòu)(IAP)的整個(gè)流程有哪些問(wèn)題? - 知乎

iOS 內(nèi)購(gòu)(IAP)的整個(gè)流程有哪些問(wèn)題? - 知乎首頁(yè)知乎知學(xué)堂發(fā)現(xiàn)等你來(lái)答?切換模式登錄/注冊(cè)iOS 開(kāi)發(fā)應(yīng)用內(nèi)購(gòu)(In-App Purchase)iOS 內(nèi)購(gòu)(IAP)的整個(gè)流程有哪些問(wèn)題?來(lái)自 @Bill Cheng 答「用戶使用 iOS 內(nèi)支付成功,但是服務(wù)器端沒(méi)有收到客戶端發(fā)來(lái)的 Receipt 的話,怎么進(jìn)行支付的確認(rèn)? 」—— …顯示全部 ?關(guān)注者177被瀏覽102,055關(guān)注問(wèn)題?寫(xiě)回答?邀請(qǐng)回答?好問(wèn)題?1 條評(píng)論?分享?6 個(gè)回答默認(rèn)排序Bill Cheng??iOS 開(kāi)發(fā)等 2 個(gè)話題下的優(yōu)秀答主? 關(guān)注感謝邀請(qǐng)首先貼上IAP流程:用戶點(diǎn)擊內(nèi)購(gòu)按鈕——>用戶確認(rèn)購(gòu)買(mǎi)內(nèi)容——>用戶通過(guò)App Store賬戶驗(yàn)證——>蘋(píng)果服務(wù)器驗(yàn)證用戶請(qǐng)求——>蘋(píng)果服務(wù)器從用戶帳號(hào)扣款——>蘋(píng)果向用戶返回購(gòu)買(mǎi)成功信息——>軟件接收并顯示用戶購(gòu)買(mǎi)信息觀察上面的流程,不難發(fā)現(xiàn)整個(gè)流程所有對(duì)于用戶的驗(yàn)證都是蘋(píng)果處理的,這就導(dǎo)致了第一個(gè)問(wèn)題:『開(kāi)發(fā)者實(shí)際上并不知道這個(gè)用戶是誰(shuí)』,或者說(shuō)『開(kāi)發(fā)者實(shí)際上并不知道付錢(qián)的是誰(shuí)』一般來(lái)說(shuō)開(kāi)發(fā)者會(huì)默認(rèn)付錢(qián)的用戶和購(gòu)買(mǎi)內(nèi)容的用戶為同一個(gè)人,而在這個(gè)流程中,實(shí)際上付錢(qián)的用戶和購(gòu)買(mǎi)內(nèi)容的用戶是兩個(gè)賬號(hào),而且這兩個(gè)賬號(hào)分別屬于不同的體系這樣的問(wèn)題在針對(duì)軟件內(nèi)容的IAP里面可能看不到問(wèn)題,但是對(duì)于『服務(wù)』這種和用戶賬號(hào)關(guān)聯(lián)的東西問(wèn)題就很大了——我如何才能知道,是我向其提供服務(wù)的用戶進(jìn)行了付款行為,而不是其他用戶違反條例幫助此用戶獲得授權(quán),或者說(shuō)其他用戶想要把自己購(gòu)買(mǎi)的服務(wù)應(yīng)用到其他賬號(hào)上上面這段可能有些繞口,那么我來(lái)舉個(gè)例子:現(xiàn)在我有一個(gè)通過(guò)IAP出售的服務(wù)A,此服務(wù)是一個(gè)一次性購(gòu)買(mǎi)服務(wù)。一個(gè)用戶使用賬號(hào)X購(gòu)買(mǎi)了這個(gè)服務(wù),然后用戶通過(guò)自己的App Store賬號(hào)在使用賬號(hào)Y的機(jī)器上使用了恢復(fù)IAP功能,那么此時(shí)我是否應(yīng)該給賬號(hào)Y提供服務(wù)A呢?針對(duì)這個(gè)問(wèn)題,雖然現(xiàn)在有各種各樣的解決方法,不過(guò)大部分情況,最后用戶還是會(huì)和客服聯(lián)系抱怨,這是IAP兩套賬號(hào)系統(tǒng)導(dǎo)致的第一個(gè)問(wèn)題第二個(gè)問(wèn)題就是,觀察流程可以發(fā)現(xiàn),對(duì)于用戶購(gòu)買(mǎi)流程中給開(kāi)發(fā)者發(fā)送的信號(hào)都來(lái)自于用戶本地程序,這個(gè)也就是早期IAP內(nèi)購(gòu)插件可以存在的原因了,好在現(xiàn)在蘋(píng)果給開(kāi)發(fā)者提供了中間步驟的驗(yàn)證,才使得內(nèi)購(gòu)插件不會(huì)影響到開(kāi)發(fā)者服務(wù)器端數(shù)據(jù)檢測(cè)??偟膩?lái)說(shuō),蘋(píng)果的IAP流程對(duì)于本地軟件增值功能來(lái)說(shuō)是一個(gè)很好的服務(wù),但是對(duì)于任何有雙重賬號(hào)問(wèn)題的服務(wù)來(lái)說(shuō)都是絕對(duì)的悲劇,而且由于蘋(píng)果對(duì)于iOS生態(tài)圈封閉的態(tài)度,對(duì)于這個(gè)大問(wèn)題的修復(fù)也總只是點(diǎn)到為止,國(guó)外可能還比較無(wú)所謂,但是在中國(guó)這個(gè)對(duì)于『用戶』看重的環(huán)境中,產(chǎn)品經(jīng)理和程序員都會(huì)面臨各種悲劇……IAP還有些亂七八糟的問(wèn)題,比如說(shuō)去年讓萬(wàn)眾瘋狂的『免費(fèi)IAP DNS』、取消訂單必須通過(guò)蘋(píng)果處理等等。當(dāng)然還有一些中國(guó)環(huán)境下的,讓產(chǎn)品經(jīng)理煩躁的問(wèn)題(Android下我可以直接拿到用戶信用卡賬號(hào)密碼,iOS下我連用戶App Store ID都很難拿到,怎么賣(mài)數(shù)據(jù))。發(fā)布于 2013-04-28 18:05?贊同 36??8 條評(píng)論?分享?收藏?喜歡收起?NewPanRust? 關(guān)注我寫(xiě)了一套完整的 IAP 方案, 處理了 IAP 的九大坑,感興趣的朋友來(lái)看看吧: 第一篇:[[iOS]貝聊 IAP 實(shí)戰(zhàn)之滿地是坑](https://www.jianshu.com/p/07b5ec193353),這一篇是支付基礎(chǔ)知識(shí)的講解,主要會(huì)詳細(xì)介紹 IAP,同時(shí)也會(huì)對(duì)比支付寶和微信支付,從而引出 IAP 的坑和注意點(diǎn)。第二篇:[[iOS]貝聊 IAP 實(shí)戰(zhàn)之見(jiàn)坑填坑](https://www.jianshu.com/p/8e5bf711f9f0),這一篇是高潮性的一篇,主要針對(duì)第一篇文章中分析出的 IAP 的問(wèn)題進(jìn)行具體解決。第三篇:[[iOS]貝聊 IAP 實(shí)戰(zhàn)之訂單綁定](https://www.jianshu.com/p/847838cde48b),這一篇是關(guān)鍵性的一篇,主要講述作者探索將自己服務(wù)器生成的訂單號(hào)綁定到 IAP 上的過(guò)程。發(fā)布于 2018-01-14 21:36?贊同 9??添加評(píng)論?分享?收藏?喜歡

【Flutter】App集成谷歌內(nèi)購(gòu)(GooglePay)的全過(guò)程(全程詳細(xì)圖文加代碼) - 掘金

【Flutter】App集成谷歌內(nèi)購(gòu)(GooglePay)的全過(guò)程(全程詳細(xì)圖文加代碼) - 掘金

首頁(yè) 首頁(yè)

沸點(diǎn)

課程

直播

活動(dòng)

競(jìng)賽

商城

APP

插件 搜索歷史

清空

創(chuàng)作者中心

寫(xiě)文章 發(fā)沸點(diǎn) 寫(xiě)筆記 寫(xiě)代碼 草稿箱 創(chuàng)作靈感

查看更多

會(huì)員

登錄

注冊(cè)

【Flutter】App集成谷歌內(nèi)購(gòu)(GooglePay)的全過(guò)程(全程詳細(xì)圖文加代碼)

Newki

2023-05-15

3,770

閱讀13分鐘

Flutter集成谷歌內(nèi)購(gòu)與使用的全過(guò)程

我正在參加「掘金·啟航計(jì)劃」

前言

注意:本文包含大量的圖片與代碼,注意流量使用。

在之前的文章中,我們了解到 Flutter 的頁(yè)面開(kāi)發(fā),以及 Flutter 的架構(gòu)搭建,完成對(duì)應(yīng)的頁(yè)面與邏輯是沒(méi)什么問(wèn)題了。

但是開(kāi)發(fā)一個(gè) App 又不是只有頁(yè)面的基本邏輯,如果涉及到一些第三方的對(duì)接就顯得比較麻煩,比如推送,支付,內(nèi)購(gòu),IM 等等。

而如果第三方?jīng)]有提供到 Flutter 的插件,那么我們就需要通過(guò) Channel 的方式自己去實(shí)現(xiàn) Android 與 iOS 的具體實(shí)現(xiàn)。

還好,F(xiàn)lutter 推出這么些年,基本上常用的一些插件都已經(jīng)有支持,就算官方?jīng)]出,也有民間大神出了類似的插件。

而本文所說(shuō)的就是相對(duì)比較復(fù)雜的第三方集成,應(yīng)用商城內(nèi)購(gòu),大部分是講谷歌內(nèi)購(gòu),其實(shí)蘋(píng)果內(nèi)購(gòu)比谷歌內(nèi)購(gòu)要更容易一下,兼容一下同樣的代碼就能完成相關(guān)的流程。

以谷歌內(nèi)購(gòu)為例,我們需要做的總共為三步,每一步我會(huì)給出詳細(xì)的相關(guān)設(shè)置對(duì)應(yīng)的圖片或代碼。

需要在谷歌市場(chǎng)配置商品,設(shè)置測(cè)試渠道,配置開(kāi)發(fā)者賬號(hào),設(shè)置對(duì)應(yīng)權(quán)限。

配置完商品之后,如何在 Flutter 中獲取到商品,購(gòu)買(mǎi)指定商品,消耗商品等。

購(gòu)買(mǎi)成功之后,如何到服務(wù)器校驗(yàn)是否支付成功,后臺(tái)服務(wù)器如何配置通行權(quán)限,谷歌市場(chǎng)與谷歌云的關(guān)聯(lián)以及相關(guān)校驗(yàn)。

注意:由于谷歌市場(chǎng)版本老在變化,本文的谷歌市場(chǎng)以 2023-05-02 時(shí)間為準(zhǔn),如果后期谷歌市場(chǎng)與谷歌云的相關(guān)網(wǎng)頁(yè)布局 或 Tab 發(fā)生變化,大家可以參考使用。

好了,大致的步驟了解了之后,我們就開(kāi)始一步步的走相關(guān)流程。

一、谷歌市場(chǎng)配置商品

按道理,我們只需要在谷歌市場(chǎng)中,找到指定的應(yīng)用,然后在內(nèi)購(gòu)的 Tab 中直接添加商品即可。但是并沒(méi)有這么簡(jiǎn)單,會(huì)提示報(bào)錯(cuò),沒(méi)有設(shè)置付款賬號(hào)。

1.1 定價(jià)模板

所以我們要切換到整個(gè)賬號(hào)的設(shè)置頁(yè)面,而不是指定應(yīng)用的選項(xiàng)。

找到付款概況之后,如果沒(méi)有付款賬號(hào),我們填寫(xiě)一些信息,姓名,郵箱,賬號(hào),等等信息,創(chuàng)建完成之后我們就可以設(shè)置定價(jià)的模板。

如果能創(chuàng)建模板說(shuō)明你付款賬號(hào)沒(méi)問(wèn)題,定價(jià)模板是非必須的,可有可無(wú),但是定義了模板之后會(huì)更加方便,到時(shí)候創(chuàng)建商品可以直接關(guān)聯(lián)模板,賬號(hào)下的每一個(gè)子應(yīng)用的內(nèi)購(gòu)商品都能關(guān)聯(lián)對(duì)應(yīng)的模板,有一個(gè)統(tǒng)一的定價(jià)。

如何創(chuàng)建定價(jià)模板如下:

我們創(chuàng)建模板之后,就可以定義模板的價(jià)格與標(biāo)題,選擇的金額會(huì)有對(duì)應(yīng)的匯率轉(zhuǎn)換,比如我創(chuàng)建的新加坡幣,如果用港元支付的話,會(huì)根據(jù)匯率轉(zhuǎn)換為對(duì)應(yīng)的港元支付。

創(chuàng)建完成之后,我們就能看到對(duì)應(yīng)的定價(jià)模板如下圖所示:

1.2 應(yīng)用上架

當(dāng)我們的一些定價(jià)模板定義完成之后,我們就可以設(shè)置應(yīng)用的內(nèi)購(gòu)了,點(diǎn)擊應(yīng)用商品內(nèi)購(gòu)的 Tab ,結(jié)果是不能創(chuàng)建,因?yàn)槟汶m然創(chuàng)建了子應(yīng)用,但是你沒(méi)有上傳APK包,并沒(méi)有應(yīng)用所以沒(méi)有對(duì)應(yīng)的應(yīng)用內(nèi)商品。

所以在此之前我們還需要做一些配置。我們需要?jiǎng)?chuàng)建一個(gè)內(nèi)部測(cè)試渠道,然后配置對(duì)應(yīng)的開(kāi)發(fā)者或測(cè)試人員。

哎,對(duì)對(duì)對(duì),我知道是很麻煩,很SB,但誰(shuí)叫谷歌就是這么定的流程呢,沒(méi)有辦法,按流程走把。

首先需要?jiǎng)?chuàng)建一個(gè)測(cè)試軌道:比如我選擇的是內(nèi)部測(cè)試:

發(fā)布一個(gè) APK / AAB 文件到測(cè)試渠道,然后 選擇/創(chuàng)建 測(cè)試人員。

如果沒(méi)有的話,創(chuàng)建一個(gè)測(cè)試者,輸入對(duì)應(yīng)的郵箱即可。

這樣就能添加測(cè)試人員了,同時(shí)你還可以在底部邀請(qǐng)鏈接去邀請(qǐng)測(cè)試者,激活測(cè)試規(guī)則等。

當(dāng)一切都配置完成之后(會(huì)有一個(gè)進(jìn)度條的,當(dāng)完成一步會(huì)中劃線標(biāo)記的),我們到發(fā)布中選擇審核以及發(fā)布,谷歌審核很快,一切正常2個(gè)小時(shí)內(nèi)就能通過(guò),然后我們打開(kāi)谷歌應(yīng)用市場(chǎng)搜索我們的應(yīng)用就能找到內(nèi)部測(cè)試的渠道應(yīng)用:

點(diǎn)擊下載之后,我們安裝的就是我們之前創(chuàng)建的內(nèi)部測(cè)試渠道應(yīng)用啦。

1.3 創(chuàng)建應(yīng)用內(nèi)購(gòu)商品

應(yīng)用雖然是上線了,但是我們還沒(méi)創(chuàng)建內(nèi)購(gòu)商品呢,此時(shí)我們?cè)冱c(diǎn)擊應(yīng)用內(nèi)購(gòu)的 Tab 就能創(chuàng)建對(duì)應(yīng)的商品了。

商品其實(shí)是分訂閱類型與內(nèi)購(gòu)商品,內(nèi)購(gòu)商品又分消耗型與非消耗型,由于我們的商品并不復(fù)雜,是輸入消耗型的,所以我的代碼都是以消耗性為例。

如何區(qū)別各種類型?舉個(gè)栗子:

訂閱類型:愛(ài)奇藝的VIP月卡。

非消耗性:消消樂(lè)免費(fèi)玩前10關(guān)卡,付費(fèi)解鎖后面的關(guān)卡內(nèi)容。

消耗性:歡樂(lè)斗地主買(mǎi)100個(gè)歡樂(lè)豆。

我們其實(shí)就是最簡(jiǎn)單的消耗性,花錢(qián)買(mǎi)虛擬幣,可重復(fù)購(gòu)買(mǎi)的那種。

下面開(kāi)始創(chuàng)建商品,這一點(diǎn)反倒是蠻簡(jiǎn)單:

注意的是,創(chuàng)建應(yīng)用id的時(shí)候,最好是包名加上商品id。避免沖突

com.xxgroup.whatsapp.coin10

隨后定義對(duì)應(yīng)的標(biāo)題與描述,以及商品對(duì)應(yīng)的價(jià)格,可以使用價(jià)格模板,也可以直接寫(xiě)。

創(chuàng)建完成之后別急,需要激活之后才能生效:

此時(shí)列表上就有了,這樣才是生效狀態(tài)。

此時(shí)就能買(mǎi)了嗎?可以了,但是測(cè)試賬號(hào)并沒(méi)有關(guān)聯(lián)信用卡,也不方便,我們?cè)O(shè)置一下測(cè)試賬號(hào)的測(cè)試購(gòu)買(mǎi)授權(quán):

下面的授權(quán)方式改為:LICENSED

好了到此,我們的谷歌市場(chǎng)配置就完成了。

二、集成支付插件兼容Android與iOS支付

接下來(lái)我們就在 Flutter 中使用插件集成應(yīng)用內(nèi)支付功能。

in_app_purchase: 3.1.5

文檔地址:【傳送門(mén)】

使用起來(lái)并不復(fù)雜,可以說(shuō)是 Android 與 iOS 的邏輯是一樣樣的。

貼一下我的代碼:

首先是生命周期的回調(diào),頁(yè)面創(chuàng)建完成初始化插件,并設(shè)置監(jiān)聽(tīng),當(dāng)頁(yè)面關(guān)閉的時(shí)間銷毀資源:

late StreamSubscription> _subscription;

late InAppPurchase _inAppPurchase;

List? _products; //內(nèi)購(gòu)的商品對(duì)象集合

@override

void onReady() {

fetchCoinList();

// 初始化in_app_purchase插件

_inAppPurchase = InAppPurchase.instance;

//監(jiān)聽(tīng)購(gòu)買(mǎi)的事件

final Stream> purchaseUpdated = _inAppPurchase.purchaseStream;

_subscription = purchaseUpdated.listen((purchaseDetailsList) {

_listenToPurchaseUpdated(purchaseDetailsList);

}, onDone: () {

_subscription.cancel();

}, onError: (error) {

error.printError();

SmartDialog.showToast("購(gòu)買(mǎi)失敗了");

});

//加載全部的商品

loadProducts();

}

@override

void onClose() {

refreshController.dispose();

datas.clear();

if (Device.isIOS) {

final InAppPurchaseStoreKitPlatformAddition iosPlatformAddition =

_inAppPurchase.getPlatformAddition();

iosPlatformAddition.setDelegate(null);

}

_subscription.cancel();

}

加載全部的商品,這里真實(shí)開(kāi)發(fā)環(huán)境是由后端接口返回的,我這里作為測(cè)試就寫(xiě)死了:

/// 加載全部的商品

void loadProducts() async {

final bool available = await _inAppPurchase.isAvailable();

if (!available) {

SmartDialog.showToast("無(wú)法連接到商店");

return;

}

//開(kāi)始購(gòu)買(mǎi)

SmartDialog.showToast("連接成功-開(kāi)始查詢?nèi)可唐?);

const Set _kIds = {

'com.hongyegroup.whatsapp.android.coin100',

'com.hongyegroup.whatsapp.android.coin500',

'com.hongyegroup.whatsapp.android.coin1000',

'com.hongyegroup.whatsapp.android.coin3000',

};

final ProductDetailsResponse response = await _inAppPurchase.queryProductDetails(_kIds);

if (response.notFoundIDs.isNotEmpty) {

SmartDialog.showToast("無(wú)法找到指定的商品");

return;

}

// 處理查詢到的商品列表

List products = response.productDetails;

if (products.isNotEmpty) {

//賦值內(nèi)購(gòu)商品集合

_products = products;

}

SmartDialog.showToast("全部商品加載完成了,可以啟動(dòng)購(gòu)買(mǎi)了,總共商品數(shù)量為:${products.length}");

//先恢復(fù)可重復(fù)購(gòu)買(mǎi)

await _inAppPurchase.restorePurchases();

}

查詢到商品之后就可以在 ListView 顯示商品的屬性,如過(guò) UI 設(shè)計(jì)的列表樣式比較復(fù)雜,當(dāng)我們谷歌內(nèi)購(gòu)設(shè)置的標(biāo)題與詳情滿足不了設(shè)計(jì)的需求,可以由我們自己的后臺(tái)返回對(duì)應(yīng)接口,當(dāng)商品加載成功之后的商品 id 去匹配對(duì)應(yīng)后臺(tái)的列表數(shù)據(jù)并展示出來(lái)。

當(dāng)我們點(diǎn)擊對(duì)應(yīng)的 Item 就可以拿到對(duì)應(yīng)的商品ID,執(zhí)行購(gòu)買(mǎi)的邏輯:

// 調(diào)用此函數(shù)以啟動(dòng)購(gòu)買(mǎi)過(guò)程

void startPurchase(String productId) async {

if (_products != null && _products!.isNotEmpty) {

SmartDialog.showToast("準(zhǔn)備開(kāi)始啟動(dòng)購(gòu)買(mǎi)流程");

try {

ProductDetails productDetails = _getProduct(productId);

Log.d("一切正常,開(kāi)始購(gòu)買(mǎi),信息如下:title: ${productDetails.title} desc:${productDetails.description} "

"price:${productDetails.price} currencyCode:${productDetails.currencyCode} currencySymbol:${productDetails.currencySymbol}");

_inAppPurchase.buyConsumable(purchaseParam: PurchaseParam(productDetails: productDetails));

} catch (e) {

e.printError();

Log.e("購(gòu)買(mǎi)失敗了");

}

} else {

SmartDialog.showToast("當(dāng)前沒(méi)有商品無(wú)法調(diào)用購(gòu)買(mǎi)邏輯");

}

}

// 根據(jù)產(chǎn)品ID獲取產(chǎn)品信息

ProductDetails _getProduct(String productId) {

return _products!.firstWhere((product) => product.id == productId);

}

我們的商品都是消耗類型的,所以這里我們就寫(xiě)死了,如果你的商品有多種類型,你可以判斷類型是輸入哪一種類型,分別就行不同種類的購(gòu)買(mǎi)方式。

當(dāng)我們點(diǎn)擊購(gòu)買(mǎi)之后,就可以走到購(gòu)買(mǎi)監(jiān)聽(tīng)中了,我們?cè)诶锩姹O(jiān)聽(tīng)當(dāng)前購(gòu)買(mǎi)的狀態(tài)。當(dāng)確定購(gòu)買(mǎi)完成之后我們就能進(jìn)行商品的消耗。如果購(gòu)買(mǎi)完成不消耗,那么三天之后會(huì)自動(dòng)退款的。

/// 內(nèi)購(gòu)的購(gòu)買(mǎi)更新監(jiān)聽(tīng)

void _listenToPurchaseUpdated(List purchaseDetailsList) async {

for (PurchaseDetails purchase in purchaseDetailsList) {

if (purchase.status == PurchaseStatus.pending) {

// 等待支付完成

_handlePending();

} else if (purchase.status == PurchaseStatus.error) {

// 購(gòu)買(mǎi)失敗

_handleError(purchase.error);

} else if (purchase.status == PurchaseStatus.purchased || purchase.status == PurchaseStatus.restored) {

//完成購(gòu)買(mǎi), 到服務(wù)器驗(yàn)證

if (Device.isAndroid) {

var googleDetail = purchase as GooglePlayPurchaseDetails;

print(purchase);

loadAndroidGetPayInfo(googleDetail);

} else if (Device.isIOS) {

var appstoreDetail = purchase as AppStorePurchaseDetails;

print(purchase);

loadAppleGetPayInfo(appstoreDetail);

}

}

}

}

/// 購(gòu)買(mǎi)失敗

void _handleError(IAPError? iapError) {

SmartDialog.showToast("購(gòu)買(mǎi)失敗啦:${iapError?.code} message${iapError?.message}");

}

/// 等待支付

void _handlePending() {

SmartDialog.showToast("等待支付的邏輯");

}

/// Android支付成功的校驗(yàn)

void loadAndroidGetPayInfo(GooglePlayPurchaseDetails googleDetail) async {

final originalJson = googleDetail.billingClientPurchase.originalJson;

Log.d("originalJson:$originalJson");

if (await coinRepositroy.checkGooglePaySuccess(originalJson)) {

//校驗(yàn)成功之后執(zhí)行消耗

await _inAppPurchase.completePurchase(googleDetail);

}

}

/// Apple支付成功的校驗(yàn)

void loadAppleGetPayInfo(AppStorePurchaseDetails appstoreDetail) {

if (await coinRepositroy.checkApplyPaySuccess(appstoreDetail)) {

//校驗(yàn)成功之后執(zhí)行消耗

await _inAppPurchase.completePurchase(appstoreDetail);

}

}

到這一步,我們已經(jīng)和測(cè)試賬號(hào)管理了,所以我們直接運(yùn)行 Debug 包一樣的可以測(cè)試支付,并且我們授權(quán)測(cè)試支付,所以不需要綁定銀行卡直接用測(cè)試支付卡就能完成支付流程。

截圖:

當(dāng)我們支付成功之后就可以執(zhí)行消耗操作。

三、服務(wù)器校驗(yàn)相關(guān)流程

我并沒(méi)有把代碼做區(qū)分,上面的代碼就已經(jīng)包含了支付成功之后的后端校驗(yàn)邏輯。

為什么要加后端校驗(yàn)?客戶端支付成功了,服務(wù)端怎么知道,萬(wàn)一用接口的方式通信,如果被抓包豈不是可以無(wú)限加金幣了。太不安全了,所以才有服務(wù)器校驗(yàn)這一步。

iOS的校驗(yàn)不用說(shuō),很簡(jiǎn)單,拿到支付完成的票據(jù)直接發(fā)起請(qǐng)求即可,而 Android 的服務(wù)端校驗(yàn)就相對(duì)麻煩,需要配置谷歌云,以及對(duì)應(yīng)的通行權(quán)限。

谷歌結(jié)算文檔:【傳送門(mén)】

谷歌支付校驗(yàn)AI:【傳送門(mén)】

如果我們直接在API中調(diào)用校驗(yàn)接口,那肯定是直接報(bào)錯(cuò):

{

"error": {

"code": 403,

"message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console.",

"errors": [

{

"message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console.",

"domain": "androidpublisher",

"reason": "projectNotLinked"

}

]

}

}

沒(méi)有授權(quán),接下來(lái)開(kāi)始授權(quán):

3.1 Google Cloud關(guān)聯(lián)

首先需要配置 Google Cloud 并且配置相關(guān)的賬號(hào),對(duì)應(yīng)指定的應(yīng)用。

點(diǎn)擊項(xiàng)目的 API Access 中

如果這一步你沒(méi)有 Google Cloud 賬號(hào),可以創(chuàng)建或關(guān)聯(lián)已有的 Google Cloud 賬號(hào),這里我沒(méi)有就直接創(chuàng)建了Google Cloud 賬號(hào)。關(guān)聯(lián)之后我們就能看到上圖所示的畫(huà)面。

我們可以直接在谷歌市場(chǎng)控制臺(tái)中的 API Access 中直接進(jìn)入谷歌云后臺(tái),也能 直接輸入網(wǎng)址 code.google.com/apis/consol… 是一樣的效果。

網(wǎng)上很多教程教你去開(kāi)通 Google Play Developer API 權(quán)限,其實(shí)現(xiàn)在是沒(méi)必要了,因?yàn)槲覀冴P(guān)聯(lián) Google Cloud 賬號(hào)之后,默認(rèn)就已經(jīng)開(kāi)通了。

所以我們不需要再次去授權(quán)了。

如果覺(jué)得不保險(xiǎn),也能在里面搜索 Billing ,然后啟動(dòng)相關(guān)的支付服務(wù)權(quán)限,反正我是開(kāi)了,但我覺(jué)得沒(méi)必要開(kāi)這些,如果不行的你開(kāi)啟這些服務(wù)也無(wú)所謂。

3.2 創(chuàng)建 web-OAuth 授權(quán)

網(wǎng)上很多教程比較老,可能要你手動(dòng)的創(chuàng)建web授權(quán),其實(shí)當(dāng)我們?cè)诠雀枋袌?chǎng)的后臺(tái)關(guān)聯(lián)谷歌云的時(shí)候,就已經(jīng)幫我們初始化了很多配置,已經(jīng)都有了。

我們?cè)俟雀柙坪笈_(tái),在APIs & auth 項(xiàng)中找到 Credentials,直接查看即可:

我們點(diǎn)擊 Web 授權(quán)進(jìn)去配置相關(guān)配置。

主要是配置左側(cè)的上下兩個(gè) URI 地址,上面的配置后臺(tái)域名:

下面的是固定寫(xiě)法,callback的地址一定是可用域名 + /oauth2callback。

創(chuàng)建完成之后,記得記錄你的三個(gè)重要字段,client_id 和 client_secret 以及 redirect_uri ,后面會(huì)用到。

通過(guò)訪問(wèn)一下的網(wǎng)頁(yè)獲取到一個(gè)oauth2callback:

https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&

redirect_uri=https://api.whatsapp.sg/oauth2callback&client_id=816630003638-5p27m684jfpfa6sh6l9chbpreq2hg9ov.apps.googleusercontent.com

返回一個(gè)code:

https://api.whatsapp.sg/oauth2callback?code=4/CpVOd8CljO_gxTRE1M5jtwEFwf8gRD44vrmKNDi4GSS.kr-GHuseD-oZEnp6UADFXm0E0MD3FlAI

拿到后面的 code 字段。

code=4/CpVOd8CljO_gxTRE1M5jtwEFwf8gRD44vrmKNDi4GSS.kr-GHuseD-oZEnp6UADFXm0E0MD3FlAI

我們手動(dòng)的在 postman 之類的工具上,通過(guò)固定的參數(shù),拿到 refresh_token(重點(diǎn),后期全靠它)

{

'grant_type':'authorization_code',

'code':'4/CpVOd8CljO_gxTRE1M5jtwEFwf8gRD44vrmKNDi4GSS.kr-GHuseD-oZEnp6UADFXm0E0MD3FlAI',//上一步獲取的,

'client_id':'816630003638-5p27m684jfpfa6sh6l9chbpreq2hg9ov.apps.googleusercontent.com',

'client_secret':'36WnPnojshgj56uhghj-xCo',

'redirect_uri':'https://api.whatsapp.sg/oauth2callback',

}

向以下的網(wǎng)址發(fā)起 Post 請(qǐng)求。

https://accounts.google.com/o/oauth2/token

一定要保證網(wǎng)絡(luò)暢通,只有一次機(jī)會(huì),返回的json對(duì)象如下

{

"access_token" : "",

"token_type" : "Bearer",

"expires_in" : 3600,

"refresh_token" : "1/zaaHNytlC3SEBX7F2cfrHcqJEa3KoAHYeXES6nmho"

}

refresh_token 就拿到了,注意一定要保存好,只有這一次機(jī)會(huì),如果再次調(diào)用此接口 refresh_token 就是空了,不會(huì)返回了。

3.3 OAuth校驗(yàn)支付是否成功

拿到這個(gè)refresh_token就可以調(diào)用真正的校驗(yàn)接口了,例如我們后端調(diào)用的是否支付成功:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{purchaseToken}?access_token={$access_token}"

這里的packageName,productId,purchaseToken 大家都很熟悉了,就是Android 支付成功之后返回給我們的,直接傳遞給后端即可,而access_token其實(shí)就是我們上面拿到的 refresh_token。

我們需要拿到第一次返回的 refresh_token 保存起來(lái),后續(xù)以刷新的方式來(lái)獲取新的 refresh_token ,用于訪問(wèn)真正的API。

后臺(tái)調(diào)用驗(yàn)證接口完成之后得到的對(duì)象如下:

{

"kind": string,

"purchaseTimeMillis": string,

"purchaseState": integer,

"consumptionState": integer,

"developerPayload": string,

"orderId": string,

"purchaseType": integer,

"acknowledgementState": integer,

"purchaseToken": string,

"productId": string,

"quantity": integer,

"obfuscatedExternalAccountId": string,

"obfuscatedExternalProfileId": string,

"regionCode": string

}

只需要驗(yàn)證狀態(tài)即可:

consumptionState == 0

purchaseState == 0

說(shuō)明這個(gè)商品已經(jīng)購(gòu)買(mǎi)了,并且也沒(méi)有被消耗,那么此時(shí)就可以給移動(dòng)端返回true,讓移動(dòng)端執(zhí)行消耗操作。

后端PHP的校驗(yàn)谷歌內(nèi)購(gòu)是否成功示例代碼:

public function checkGooglePay(){

$google_public_key = "你的公鑰(google后臺(tái)在你的應(yīng)用下獲取)";

$inapp_purchase_data = $_REQUEST['signtureTemp'];

$inapp_data_signature = $_REQUEST['signtureDataTemp'];

$key = "-----BEGIN PUBLIC KEY-----\n".chunk_split($google_public_key, 64,"\n").'-----END PUBLIC KEY-----';

$key = openssl_pkey_get_public($key);

$signature = base64_decode($inapp_data_signature);

$ok = openssl_verify($inapp_purchase_data,$signature,$key,OPENSSL_ALGO_SHA1);

if (1 == $ok) {

// 支付驗(yàn)證成功!

//進(jìn)行二次驗(yàn)證,訂單查詢

// 1.獲取access_token(3600秒有效期)

$access_token_url = "https://accounts.google.com/o/oauth2/token";

$data_tmp2 = array(

'grant_type'=>'refresh_token',

'refresh_token'=>'',//長(zhǎng)效token

'client_id'=>'', //客戶端id

'client_secret'=>'',//客戶端密鑰

);

$http = new http($access_token_url,'POST',5);

$http->setContent($data_tmp2);

$result = $http->exec();

$result = json_decode($contents,true);

$access_token = $result['access_token'];

//2.通過(guò)獲得access_token 就可以請(qǐng)求谷歌的API接口,獲得訂單狀態(tài)

$packageName=""http://包名

$productId="" //產(chǎn)品Id

$purchaseToken=""

$url = "https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{purchaseToken}?access_token={$access_token}";

$http = new http($url,'GET',5);

$http->setContent($data);

$contents = $http->exec();

$contents = json_decode($contents,true);

if($contents['consumptionState'] == 0 && $contents['purchaseState'] == 0){

//驗(yàn)證成功 購(gòu)買(mǎi)成功并且沒(méi)有消耗 google支付中客戶端如果沒(méi)有進(jìn)行消耗是不能再次購(gòu)買(mǎi)該商品

//處理游戲邏輯 發(fā)鉆石,通知客戶端進(jìn)行消耗

}else{

//訂單驗(yàn)證失敗

}

}else{

//簽名驗(yàn)證失敗

}

}

第一步是可選的,校驗(yàn)APK的簽名,當(dāng)前應(yīng)用是不是谷歌市場(chǎng)下載的,如果不是從谷歌市場(chǎng)下載的那么支付不生效。如果你想要的校驗(yàn)APK來(lái)源就加上,不想校驗(yàn)也可以。

第二步就是開(kāi)始校驗(yàn)谷歌內(nèi)購(gòu)支付訂單的狀態(tài),拿到本地長(zhǎng)期保存的refresh_token 以及之前獲取到的client_id 和 client_secret 就可以到哪授權(quán)的 access_token 。

第三部就是拿到 access_token 以及 客戶端傳遞的包名,產(chǎn)品id,支付憑證,調(diào)用校驗(yàn)接口,拿到訂單的當(dāng)前狀態(tài)。

然后就是根據(jù)訂單的狀態(tài)判斷返回給客戶端是否有效,讓客戶端執(zhí)行消耗操作。

如果您覺(jué)得有必要,也可以消耗之后再次調(diào)用接口校驗(yàn),是否已購(gòu)買(mǎi),是否已消耗。

3.3 創(chuàng)建Service Account的授權(quán)

其實(shí)之前的之前的 Web-OAuth 的方式來(lái)進(jìn)行驗(yàn)證不是不行,但是步驟相對(duì)比較復(fù)雜,而更推薦的方式則是創(chuàng)建服務(wù)的方式來(lái)進(jìn)行校驗(yàn)。

我們把視角拉回谷歌市場(chǎng)控制臺(tái),找到 Api Access 選項(xiàng) (老熟人了)

其實(shí)我們?cè)谙旅娴脑L問(wèn)權(quán)限就可以看到 Service Account 的選項(xiàng)。如果你已有 Service Account 就可以看到全部的關(guān)聯(lián)的 Service Account 。如果你沒(méi)有此服務(wù),那么就可以點(diǎn)擊創(chuàng)建服務(wù)去谷歌云創(chuàng)建。當(dāng)我們到谷歌云里面點(diǎn)擊創(chuàng)建 Service Account:

我們點(diǎn)擊創(chuàng)建 Service Account 會(huì)走到創(chuàng)建服務(wù)的流程:

第一步隨便寫(xiě),關(guān)鍵是第二步:

選擇角色為 Service Account Admin

第三步不填,直接提交:

你就能看到你創(chuàng)建的服務(wù)啦,接下來(lái)就是創(chuàng)建Key,Json的方式創(chuàng)建,然后下載到Json給到后臺(tái)人員。

再下一步就回到谷歌商店控制臺(tái)的 Api Access 看 Service Account 是否已經(jīng)關(guān)聯(lián)上了:

如果有這樣的信息,說(shuō)明關(guān)聯(lián)上了,才是正確的流程,如果你創(chuàng)建了 Service Account,但是這里并沒(méi)有展示,那么就肯定會(huì)錯(cuò):

{

??"code"?:?401,

??"errors"?:?[?{

????"domain"?:?"androidpublisher",

????"message"?:?"The?current?user?has?insufficient?permissions?to?perform?the?requested?operation.",

????"reason"?:?"permissionDenied"

??}?],

??"message"?:?"The?current?user?has?insufficient?permissions?to?perform?the?requested?operation."

}

之后正常顯示了服務(wù),說(shuō)明你的服務(wù)才能訪問(wèn)到谷歌市場(chǎng)這一邊,接下來(lái)就是點(diǎn)擊授予訪問(wèn)權(quán)限。

重點(diǎn)是要把財(cái)務(wù)信息的兩項(xiàng)勾選上,這樣才能訪問(wèn)到應(yīng)用內(nèi)支付校驗(yàn)的相關(guān)權(quán)限,如圖所示:

點(diǎn)擊保存修改之后就完成了,由于我們關(guān)聯(lián)賬號(hào)的時(shí)候已經(jīng)勾選了 Google Play Android Developer API 權(quán)限,我們現(xiàn)在直接就能用了。

后端的用法各平臺(tái)的使用方式不同,但是都是很簡(jiǎn)單的,直接集成谷歌的API,然后總共就兩步,第一步設(shè)置Config屬性把這個(gè) Service Account 生成的Json文件傳入,第二步直接調(diào)用 GoogleAPI 內(nèi)置的校驗(yàn)方法即可,都是API內(nèi)置了的更方便。

當(dāng)我們客戶端把packageName ,prodectId,purchaseToken 三個(gè)字段傳給后端,他們直接調(diào)用 API 就能直接校驗(yàn),相比 Web-OAuth 的方式要更簡(jiǎn)單一些。

校驗(yàn)結(jié)果如下:

OK,兩種方法 Web-OAuth 的授權(quán)方式,以及 Service Account 的授權(quán)方式,兩種都可以達(dá)到效果。就看大家的喜歡哪一種啦!

那么到處整體的谷歌內(nèi)購(gòu)全部流程就結(jié)束了,大家覺(jué)得還算詳細(xì)嗎?

后記

其他的第三方插件我覺(jué)得 Flutter 都蠻簡(jiǎn)單的,比如極光推送,感覺(jué)比 Android 版本的還要簡(jiǎn)單,一些配置與代碼都封裝好了,開(kāi)箱即用很方便。

對(duì)于內(nèi)購(gòu)的插件 in_app_purchase 其實(shí)內(nèi)部在 Android 平臺(tái)也是用的 Google Billing ,只是封裝之后使用起來(lái)也很簡(jiǎn)單。感覺(jué)比原生都好用

主要是內(nèi)購(gòu)的配置,谷歌的配置,應(yīng)用配置,商品的配置,谷歌云配置,各種授權(quán)配置。只要其中一步卡住了就不能行,感覺(jué)真的是很復(fù)雜,網(wǎng)上的一些參考資源很多都是過(guò)時(shí)的,所以才有了我一步步的踩坑的分享,如果有需要大家可以收藏一波,收藏等于學(xué)會(huì),萬(wàn)一哪天踩坑了可以參考參考嘛。

關(guān)于內(nèi)購(gòu),不知道大家有沒(méi)有遇到內(nèi)購(gòu)的一些坑呢,又是如何解決的呢?歡迎大家一起交流一下哦。

那么本期內(nèi)容就到這里,如講的不到位或錯(cuò)漏的地方,希望同學(xué)們可以評(píng)論區(qū)指出。

如果感覺(jué)本文對(duì)你有一點(diǎn)點(diǎn)點(diǎn)的啟發(fā),還望你能點(diǎn)贊支持一下,你的支持是我最大的動(dòng)力啦。

Ok,這一期就此完結(jié)。

Newki

Android/Flutter開(kāi)發(fā) @武漢

163

文章

419k

閱讀

1.2k

粉絲 目錄 收起

Flutter集成谷歌內(nèi)購(gòu)與使用的全過(guò)程

前言

一、谷歌市場(chǎng)配置商品

二、集成支付插件兼容Android與iOS支付

三、服務(wù)器校驗(yàn)相關(guān)流程

3.1 Google Cloud關(guān)聯(lián)

3.2 創(chuàng)建 web-OAuth 授權(quán)

3.3 OAuth校驗(yàn)支付是否成功

3.3 創(chuàng)建Service Account的授權(quán)

后記

相關(guān)推薦 Flutter筆記:Flutter的WidgetsBinding.instance的window屬性 1.4k閱讀 ?·? 5點(diǎn)贊使用Flutter約束傳遞優(yōu)化你的UI設(shè)計(jì) 1.1k閱讀 ?·? 12點(diǎn)贊Flutter 繪制實(shí)踐 | 路徑篇 · 數(shù)字顯示管 2.6k閱讀 ?·? 62點(diǎn)贊Flutter 構(gòu)建設(shè)計(jì)系統(tǒng) 1.3k閱讀 ?·? 11點(diǎn)贊添加Flutter到iOS工程最新教程 6.5k閱讀 ?·? 19點(diǎn)贊 友情鏈接:

smartjs

In App Purchasing - Unity 手冊(cè)

In App Purchasing - Unity 手冊(cè)

手冊(cè)

腳本 API

unity.cn

Version:

2021.1

2023.2

2023.1

2022.3

2022.2

2022.1

2021.3

2021.2

2021.1

2020.3

2020.2

2020.1

2019.4

2019.3

2019.2

2019.1

2018.4

2018.3

2018.2

2018.1

2017.4

2017.3

2017.2

2017.1

5.6

包含此頁(yè)的版本:

不含此頁(yè)的版本:

受支持

舊版

手冊(cè)

腳本 API

語(yǔ)言:

中文

English

中文

日本語(yǔ)

???

手冊(cè)

Version:

2021.1

2023.2

2023.1

2022.3

2022.2

2022.1

2021.3

2021.2

2021.1

2020.3

2020.2

2020.1

2019.4

2019.3

2019.2

2019.1

2018.4

2018.3

2018.2

2018.1

2017.4

2017.3

2017.2

2017.1

5.6

包含此頁(yè)的版本:

不含此頁(yè)的版本:

受支持

舊版

Unity User Manual 2021.1

Released packages

In App Purchasing

FBX Exporter

Input System

In App Purchasing

com.unity.purchasing

描述

重要升級(jí)說(shuō)明:如果從 Unity IAP(com.unity.purchasing + Asset Store 插件)版本 2.x 更新為版本 3.x,請(qǐng)完成以下操作以解決編譯錯(cuò)誤: 1. 移動(dòng) IAPProductCatalog.json 和 BillingMode.json,從:Assets/Plugins/UnityPurchasing/Resources/ 到:Assets/Resources/. 2. 移動(dòng) AppleTangle.cs 和 GooglePlayTangle.cs 從:Assets/Plugins/UnityPurchasing/generated 到:Assets/Scripts/UnityPurchasing/generated. 3. 所有其余 Asset Store 插件文件夾和文件從項(xiàng)目的 Assets/Plugins/UnityPurchasing 中刪除。包描述:借助 Unity IAP,在多個(gè)應(yīng)用商店中為游戲設(shè)置應(yīng)用內(nèi)購(gòu)從未如此簡(jiǎn)單。該包提供: a–a 一種免費(fèi)訪問(wèn)所有商店的通用 API,以便您充分了解和優(yōu)化自己的游戲內(nèi)經(jīng)濟(jì) a–a 與 Unity Analytics 自動(dòng)耦合,可根據(jù)多個(gè)平臺(tái)的收入和購(gòu)買(mǎi)數(shù)據(jù)趨勢(shì)進(jìn)行監(jiān)控和決策 a–a 支持 iOS、Mac、tvOS、Google Play、Windows 和 Amazon 應(yīng)用商店(*). a–a 支持與 Unity Distribution Portal 一起使用,以與其他應(yīng)用商店同步目錄和交易 a–a Apple App Store 和 Google Play 的客戶端收據(jù)驗(yàn)證安裝此軟件包后,打開(kāi) Services 窗口以啟用應(yīng)用內(nèi)購(gòu),以使用這些功能。

版本信息

Released for Unity

Package version 3.2.3 is released for Unity Editor version 2021.1.

與 Unity 兼容

These package versions are available in Unity version 2021.1:

文檔位置:

狀態(tài)

可用版本:

com.unity.purchasing@4.0

released

4.0.0

com.unity.purchasing@3.2

released

3.2.2, 3.2.3

關(guān)鍵字

purchasing , iap , unity

FBX Exporter

Input System

Copyright ? 2023 Unity Technologies 優(yōu)美締軟件(上海)有限公司 版權(quán)所有 "Unity"、Unity 徽標(biāo)及其他 Unity 商標(biāo)是 Unity Technologies 或其附屬機(jī)構(gòu)在美國(guó)及其他地區(qū)的商標(biāo)或注冊(cè)商標(biāo)。其他名稱或品牌是其各自所有者的商標(biāo)。 公安部備案號(hào):31010902002961 法律條款 隱私政策 Cookies 滬ICP備13002771號(hào)-8

iOS 內(nèi)購(gòu)插件 - DCloud 插件市場(chǎng)

iOS 內(nèi)購(gòu)插件 - DCloud 插件市場(chǎng)

Toggle navigation

登錄

注冊(cè)

全部

前端組件

通用組件

uvue 組件

nvue 組件

小程序組件

DataCom組件

JS SDK

通用 SDK

UTS SDK

微信小程序 SDK

Native.js

UTS插件

API插件

組件插件

uni-app前端模板

前端頁(yè)面模板

uvue 頁(yè)面模板

nvue 頁(yè)面模板

uni-app前端項(xiàng)目模板

App原生語(yǔ)言插件

App原生語(yǔ)言插件

web 項(xiàng)目

web 項(xiàng)目模板

uniCloud

云函數(shù)模板

云端一體頁(yè)面模板

云端一體項(xiàng)目模板

Admin插件

DB Schema及驗(yàn)證函數(shù)

HBuilderX

HBuilderX

語(yǔ)言包

服務(wù)商店

沒(méi)找到想要的插件?

提交需求

已發(fā)布需求

插件開(kāi)發(fā)指南

發(fā)布插件

我的插件

App原生語(yǔ)言插件

App原生語(yǔ)言插件

iOS 內(nèi)購(gòu)插件

iOS 內(nèi)購(gòu)插件

StoreKit

內(nèi)購(gòu)

IAP

原生代碼實(shí)現(xiàn)iOS內(nèi)購(gòu),只有兩個(gè)方法簡(jiǎn)單操作

作者:

243***@qq.com

咨詢作者

下載人數(shù): 8

????

下載次數(shù): 10

????

收藏人數(shù):

1

(0)

插件ID:XTL-IAPKit

插件包體積:21.7KB

更新日期:2024-01-03

版本:2.0

購(gòu)買(mǎi)(0 元)for 云打包

下載 for 離線打包

贊賞(0)

本站所有收費(fèi)插件均支持免費(fèi)試用,切勿私下交易或購(gòu)買(mǎi)不可正常試用的插件,而造成不必要的糾紛。

概述

評(píng)論

更新記錄

2.0(2024-01-03)

XTLIAPKit使用教程

1.引入XTLIAPKit插件

var iap = uni.requireNativePlugin("XTLIAPKit")

2.發(fā)起支付請(qǐng)求

var iap = uni.requireNativePlugin("XTLIAPKit")

//發(fā)起支付

iap.pay({

'pids': ['內(nèi)購(gòu)商品id'],

'isAutoFinishTransaction': false//是否自動(dòng)結(jié)算憑據(jù)

},(ret) => {

})

3.完成支付請(qǐng)求,僅在isAutoFinishTransaction=false時(shí)需要

//完成支付并結(jié)算憑證

iap.finishTransaction({})

平臺(tái)兼容性

Android

iOS

×

適用版本區(qū)間:9 - 17

原生插件通用使用流程:

購(gòu)買(mǎi)插件,選擇該插件綁定的項(xiàng)目。

在HBuilderX里找到項(xiàng)目,在manifest的app原生插件配置中勾選模塊,如需要填寫(xiě)參數(shù)則參考插件作者的文檔添加。

根據(jù)插件作者的提供的文檔開(kāi)發(fā)代碼,在代碼中引用插件,調(diào)用插件功能。

打包自定義基座,選擇插件,得到自定義基座,然后運(yùn)行時(shí)選擇自定義基座,進(jìn)行l(wèi)og輸出測(cè)試。

開(kāi)發(fā)完畢后正式云打包

付費(fèi)原生插件目前不支持離線打包。

Android 離線打包原生插件另見(jiàn)文檔 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android

iOS 離線打包原生插件另見(jiàn)文檔 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事項(xiàng):使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下購(gòu)買(mǎi)并綁定了多個(gè)包名,提交云打包界面提示包名綁定不一致時(shí),需要在HBuilderX項(xiàng)目中manifest.json->“App原生插件配置”->”云端插件“列表中刪除該插件重新選擇

XTLIAPKit使用教程

1.引入XTLIAPKit插件

var iap = uni.requireNativePlugin("XTLIAPKit")

2.發(fā)起支付請(qǐng)求

var iap = uni.requireNativePlugin("XTLIAPKit")

//發(fā)起支付

iap.pay({

'pids': ['內(nèi)購(gòu)商品id'],

'isAutoFinishTransaction': false//是否自動(dòng)結(jié)算憑據(jù)

},(ret) => {

})

3.完成支付請(qǐng)求,僅在isAutoFinishTransaction=false時(shí)需要

//完成支付并結(jié)算憑證

iap.finishTransaction({})

隱私、權(quán)限聲明

1. 本插件需要申請(qǐng)的系統(tǒng)權(quán)限列表:

暫無(wú)

2. 本插件采集的數(shù)據(jù)、發(fā)送的服務(wù)器地址、以及數(shù)據(jù)用途說(shuō)明:

暫無(wú)

3. 本插件是否包含廣告,如包含需詳細(xì)說(shuō)明廣告表達(dá)方式、展示頻率:

暫無(wú)

許可協(xié)議

作者未提供license.md

評(píng)論列表

撰寫(xiě)評(píng)論

暫無(wú)用戶評(píng)論。

加載更多...

沒(méi)有更多評(píng)論了。

插件問(wèn)答

我要提問(wèn)

使用中有什么不明白的地方,就向插件作者提問(wèn)吧~

我要提問(wèn)

加載更多...

沒(méi)有更多了。

推廣

他的插件

iOS 內(nèi)購(gòu)插件

StoreKit

內(nèi)購(gòu)

IAP

(0)

原生代碼實(shí)現(xiàn)iOS內(nèi)購(gòu),只有兩個(gè)方法簡(jiǎn)單操作

?下載?10

?贊賞?0

原生SDK插件作者排行

李子

發(fā)布插件:49

下載?7987?

?銷量?1154?

FullStack

發(fā)布插件:116

下載?14206?

?銷量?1343?

Fvv123

發(fā)布插件:8

下載?18292?

?銷量?17?

fsyang

發(fā)布插件:22

下載?12660?

?銷量?1878?

博文浩蕩

發(fā)布插件:40

下載?16906?

?銷量?1859?

碼農(nóng)朱哲

發(fā)布插件:46

下載?31409?

?銷量?1199?

軟云

發(fā)布插件:46

下載?9899?

?銷量?646?

極光

發(fā)布插件:6

下載?27875?

?銷量?23?

happyboy183

發(fā)布插件:4

下載?4447?

?銷量?785?

三杯五岳

發(fā)布插件:60

下載?18677?

?銷量?2605?

hke***@qq.com

發(fā)布插件:13

下載?5721?

?銷量?1235?

imn***@gmail.com

發(fā)布插件:3

下載?2963?

?銷量?2?

129***@qq.com

發(fā)布插件:1

下載?2367?

?銷量?2?

mPaaS

發(fā)布插件:1

下載?13256?

?銷量?8?

935***@qq.com

發(fā)布插件:1

下載?2770?

?銷量?6?

5元

10元

20元

50元

100元

200元

自定義

支付寶

微信支付

贊賞

×

前端兼容平臺(tái)

Vue

vue2

不確定

不支持

支持

最低版本號(hào):無(wú)

vue3

不確定

不支持

支持

App

app-vue

不確定

不支持

支持

app-nvue

不確定

不支持

支持

app-uvue

不確定

不支持

支持

H5-mobile

Safari

不確定

不支持

支持

Android Browser

不確定

不支持

支持

微信瀏覽器(Android)

不確定

不支持

支持

QQ瀏覽器(Android)

不確定

不支持

支持

H5-pc

Chrome

不確定

不支持

支持

IE

不確定

不支持

支持

Edge

不確定

不支持

支持

Firefox

不確定

不支持

支持

Safari

不確定

不支持

支持

小程序

微信

不確定

不支持

支持

阿里

不確定

不支持

支持

百度

不確定

不支持

支持

字節(jié)跳動(dòng)

不確定

不支持

支持

QQ

不確定

不支持

支持

釘釘

不確定

不支持

支持

快手

不確定

不支持

支持

飛書(shū)

不確定

不支持

支持

京東

不確定

不支持

支持

快應(yīng)用

華為

不確定

不支持

支持

聯(lián)盟

不確定

不支持

支持

部署進(jìn)度

×

Modal title

One fine body…

Close

Save changes

DCloud 即數(shù)字天堂(北京)網(wǎng)絡(luò)技術(shù)有限公司是W3C成員及HTML5中國(guó)產(chǎn)業(yè)聯(lián)盟發(fā)起單位

商務(wù)合作:bd@dcloud.io、廣告投放?|?

向官方投訴

京ICP備12046007號(hào)-4 | 京公網(wǎng)安備:11010802035340號(hào)

增值電信業(yè)務(wù)經(jīng)營(yíng)許可證編號(hào):合字B2-20220010 | 國(guó)家信息安全等級(jí)保護(hù)三級(jí),證書(shū)編號(hào):11010813802-20001

2022 iOS 內(nèi)購(gòu)詳解最新最全I(xiàn)n-App Purchase(附代碼) - 簡(jiǎn)書(shū)

iOS 內(nèi)購(gòu)詳解最新最全I(xiàn)n-App Purchase(附代碼) - 簡(jiǎn)書(shū)登錄注冊(cè)寫(xiě)文章首頁(yè)下載APP會(huì)員IT技術(shù)2022 iOS 內(nèi)購(gòu)詳解最新最全I(xiàn)n-App Purchase(附代碼)請(qǐng)叫我作家關(guān)注贊賞支持2022 iOS 內(nèi)購(gòu)詳解最新最全I(xiàn)n-App Purchase(附代碼)

學(xué)如逆水行舟,不進(jìn)則退。

今天和大家來(lái)聊聊iOS內(nèi)購(gòu)即In-App Purchase,內(nèi)購(gòu)分為消耗型、非消耗型、自動(dòng)訂閱、非自動(dòng)訂閱型。

內(nèi)購(gòu)流程

配置App內(nèi)購(gòu)買(mǎi)項(xiàng)目(可以參考蘋(píng)果官方文檔)

在iTC后臺(tái)接收付費(fèi)協(xié)議

創(chuàng)建App內(nèi)購(gòu)買(mǎi)項(xiàng)目

創(chuàng)建沙盒賬號(hào),用于測(cè)試

代碼實(shí)現(xiàn)

從蘋(píng)果請(qǐng)求商品詳情

- (void)requestIAPProducts:(NSSet *)productIds

{

SKProductsRequest *productReq = [[SKProductsRequest alloc] initWithProductIdentifiers:productIds];

productReq.delegate = self;// SKProductsRequestDelegate

[productReq start];

}

實(shí)現(xiàn)SKProductsRequestDelegate代理,如果獲取到商品的話就執(zhí)行購(gòu)買(mǎi)行為

#pragma mark SKProductsRequestDelegate

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response

{

[response.products enumerateObjectsUsingBlock:^(SKProduct * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

}];

[response.invalidProductIdentifiers enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

}];

// 開(kāi)始購(gòu)買(mǎi)

if (response.products.count > 0) {

SKProduct *product = response.products.firstObject;

SKMutablePayment *payment = [[SKMutablePayment alloc] init];

payment.applicationUsername = @"uid";

payment.productIdentifier = product.productIdentifier;

payment.quantity = 1;

[[SKPaymentQueue defaultQueue] addPayment:payment];

}

}

- (void)requestDidFinish:(SKRequest *)request

{

}

- (void)request:(SKRequest *)request didFailWithError:(NSError *)error

{

}

監(jiān)聽(tīng)商品支付結(jié)果:SKPaymentTransactionObserver

#pragma mark SKPaymentTransactionObserver

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

{

for (SKPaymentTransaction *transaction in transactions) {

switch (transaction.transactionState) {

// 1、購(gòu)買(mǎi)成功

// 2、購(gòu)買(mǎi)成功,但是你沒(méi)有finish掉,沒(méi)有消耗

case SKPaymentTransactionStatePurchased: {

//自動(dòng)訂閱訂單拋出,只有自動(dòng)訂閱訂單originalTransaction才會(huì)有值

if (transaction.originalTransaction) {

} else {

}

// 對(duì)于成功的訂單需要先到后臺(tái)校驗(yàn) 成功后才可以消單

// [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

break;

}

case SKPaymentTransactionStateFailed: {

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

break;

}

case SKPaymentTransactionStateRestored: {

// [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

break;

}

case SKPaymentTransactionStatePurchasing: {

break;

}

case SKPaymentTransactionStateDeferred: {

break;

}

default: {

break;

}

}

}

}

后臺(tái)校驗(yàn)訂單

沙盒訂單校驗(yàn):https://sandbox.itunes.apple.com/verifyReceipt

正式訂單校驗(yàn):https://buy.itunes.apple.com/verifyReceipt

憑證校驗(yàn)結(jié)果格式說(shuō)明

{

"receipt": {

"receipt_type": "ProductionSandbox",

"adam_id": 0,

"app_item_id": 0,

"bundle_id": "",

"application_version": "7.0",

"download_id": 0,

"version_external_identifier": 0,

"receipt_creation_date": "2022-05-20 02:37:42 Etc/GMT",

"receipt_creation_date_ms": "1653014262000",

"receipt_creation_date_pst": "2022-05-19 19:37:42 America/Los_Angeles",

"request_date": "2022-05-31 06:46:57 Etc/GMT",

"request_date_ms": "1653979617874",

"request_date_pst": "2022-05-30 23:46:57 America/Los_Angeles",

"original_purchase_date": "2013-08-01 07:00:00 Etc/GMT",

"original_purchase_date_ms": "1375340400000",

"original_purchase_date_pst": "2013-08-01 00:00:00 America/Los_Angeles",

"original_application_version": "1.0",

"in_app": [

{

"quantity": "1",

"product_id": "xxxx",

"transaction_id": "xx",

"original_transaction_id": "xxx",

"purchase_date": "2022-05-20 02:37:41 Etc/GMT",

"purchase_date_ms": "1653014261000",

"purchase_date_pst": "2022-05-19 19:37:41 America/Los_Angeles",

"original_purchase_date": "2022-05-20 02:37:41 Etc/GMT",

"original_purchase_date_ms": "1653014261000",

"original_purchase_date_pst": "2022-05-19 19:37:41 America/Los_Angeles",

"is_trial_period": "false",

"in_app_ownership_type": "PURCHASED" // 代表成功

}

]

},

"environment": "Sandbox",

"status": 0

}

Demo 已經(jīng)上傳至Github ,記得給個(gè)star

發(fā)布上線

代碼實(shí)現(xiàn)開(kāi)發(fā)完成后,可以跟著版本一起發(fā)布,也可以單獨(dú)審核內(nèi)購(gòu),看具體需求

內(nèi)購(gòu)常見(jiàn)錯(cuò)誤

獲取不到商品信息:檢查itc商品審核以及下線情況,檢查設(shè)備知否支持內(nèi)購(gòu)

無(wú)法連接: 網(wǎng)絡(luò)問(wèn)題,切記沙盒環(huán)境下不可開(kāi)vpn或者網(wǎng)絡(luò)代理

21000 App Store無(wú)法讀取你提供的JSON數(shù)據(jù)

21002 收據(jù)數(shù)據(jù)不符合格式

21003 收據(jù)無(wú)法被驗(yàn)證

21004 你提供的共享密鑰和賬戶的共享密鑰不一致

21005 收據(jù)服務(wù)器當(dāng)前不可用

21006 收據(jù)是有效的,但訂閱服務(wù)已經(jīng)過(guò)期。當(dāng)收到這個(gè)信息時(shí),解碼后的收據(jù)信息也包含在返回內(nèi)容中

21007 收據(jù)信息是測(cè)試用(sandbox),但卻被發(fā)送到產(chǎn)品環(huán)境中驗(yàn)證

21008 收據(jù)信息是產(chǎn)品環(huán)境中使用,但卻被發(fā)送到測(cè)試環(huán)境中驗(yàn)證

如果覺(jué)得我寫(xiě)的還不錯(cuò)的話,記得給個(gè)關(guān)注哦。有任何疑問(wèn)?可以留言咨詢哦,看到會(huì)回復(fù)

參考資料:

App內(nèi)購(gòu)買(mǎi)項(xiàng)目類型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者 人面猴序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...沈念sama閱讀 145,261評(píng)論 1贊 308死咒序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...沈念sama閱讀 62,177評(píng)論 1贊 259救了他兩次的神仙讓他今天三更去死文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...開(kāi)封第一講書(shū)人閱讀 96,329評(píng)論 0贊 214道士緝兇錄:失蹤的賣(mài)姜人 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...開(kāi)封第一講書(shū)人閱讀 41,490評(píng)論 0贊 184?港島之戀(遺憾婚禮)正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...茶點(diǎn)故事閱讀 49,353評(píng)論 1贊 262惡毒庶女頂嫁案:這布局不是一般人想出來(lái)的文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...開(kāi)封第一講書(shū)人閱讀 39,028評(píng)論 1贊 179城市分裂傳說(shuō)那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...沈念sama閱讀 30,611評(píng)論 2贊 276雙鴛鴦連環(huán)套:你想象不到人心有多黑文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...開(kāi)封第一講書(shū)人閱讀 29,383評(píng)論 0贊 171萬(wàn)榮殺人案實(shí)錄序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...沈念sama閱讀 32,749評(píng)論 0贊 215?護(hù)林員之死正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...茶點(diǎn)故事閱讀 29,460評(píng)論 2贊 219?白月光啟示錄正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...茶點(diǎn)故事閱讀 30,814評(píng)論 1贊 232活死人序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...沈念sama閱讀 27,255評(píng)論 2贊 215?日本核電站爆炸內(nèi)幕正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...茶點(diǎn)故事閱讀 31,752評(píng)論 3贊 214男人毒藥:我在死后第九天來(lái)索命文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...開(kāi)封第一講書(shū)人閱讀 25,685評(píng)論 0贊 9一樁弒父案,背后竟有這般陰謀文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...開(kāi)封第一講書(shū)人閱讀 26,114評(píng)論 0贊 170情欲美人皮我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...沈念sama閱讀 33,747評(píng)論 2贊 234代替公主和親正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...茶點(diǎn)故事閱讀 33,901評(píng)論 2贊 238推薦閱讀更多精彩內(nèi)容iOS 內(nèi)購(gòu)最新講解一.總說(shuō)內(nèi)購(gòu)的內(nèi)容 協(xié)議、稅務(wù)和銀行業(yè)務(wù) 信息填寫(xiě) 內(nèi)購(gòu)商品的添加 添加沙盒測(cè)試賬號(hào) 內(nèi)購(gòu)代碼的具體實(shí)現(xiàn) 內(nèi)購(gòu)的注...九洲仙人閱讀 2,837評(píng)論 2贊 3iOS 內(nèi)購(gòu)最新講解一.總說(shuō)內(nèi)購(gòu)的內(nèi)容 協(xié)議、稅務(wù)和銀行業(yè)務(wù) 信息填寫(xiě) 內(nèi)購(gòu)商品的添加 添加沙盒測(cè)試賬號(hào) 內(nèi)購(gòu)代碼的具體實(shí)現(xiàn) 內(nèi)購(gòu)的注...默默_David閱讀 3,351評(píng)論 0贊 6Flutter iOS 蘋(píng)果IAP(內(nèi)購(gòu))實(shí)現(xiàn)步驟及問(wèn)題總結(jié)(全網(wǎng)最全)IAP內(nèi)購(gòu)支付流程 Client向Server發(fā)送請(qǐng)求,獲得一份產(chǎn)品列表。 Server返回包含產(chǎn)品標(biāo)識(shí)符的列表。...StevenHu_Sir閱讀 25,354評(píng)論 10贊 48iOS 蘋(píng)果內(nèi)購(gòu)(In-App Purchase)內(nèi)購(gòu)簡(jiǎn)介 IAP 全稱:In-App Purchase,是指蘋(píng)果 App Store 的應(yīng)用內(nèi)購(gòu)買(mǎi),是蘋(píng)果為 Ap...歐大帥Allen閱讀 7,167評(píng)論 0贊 6iOS內(nèi)購(gòu)—— In-App Purchase(消耗型)iOS應(yīng)用如果涉及到支付功能,分為兩類:第三方支付和蘋(píng)果內(nèi)購(gòu)。那么什么情況下選擇使用第三方支付,又在什么情況下選擇...ZfRee閱讀 38,180評(píng)論 36贊 66評(píng)論0贊99贊10贊贊賞更

iphone越獄內(nèi)購(gòu)破解插件可以解決什么類型的軟件? - 知乎

iphone越獄內(nèi)購(gòu)破解插件可以解決什么類型的軟件? - 知乎首頁(yè)知乎知學(xué)堂發(fā)現(xiàn)等你來(lái)答?切換模式登錄/注冊(cè)iOSiPhone 應(yīng)用iphone越獄內(nèi)購(gòu)破解插件可以解決什么類型的軟件?關(guān)注者3被瀏覽7,500關(guān)注問(wèn)題?寫(xiě)回答?邀請(qǐng)回答?好問(wèn)題?添加評(píng)論?分享?1 個(gè)回答默認(rèn)排序知乎用戶破解插件有很多種,IAP FREE,IAP CRACKER是常見(jiàn)的內(nèi)購(gòu)破解類插件。內(nèi)購(gòu)破解對(duì)大多數(shù)軟件可以成功,這在網(wǎng)上有各種清單就不多贅述,而許多游戲大作諸如gameloft或者EA的是很難破解的。發(fā)布于 2014-01-23 20:18?贊同??1 條評(píng)論?分享?收藏?喜歡收起??

iapfree_百度百科

ree_百度百科 網(wǎng)頁(yè)新聞貼吧知道網(wǎng)盤(pán)圖片視頻地圖文庫(kù)資訊采購(gòu)百科百度首頁(yè)登錄注冊(cè)進(jìn)入詞條全站搜索幫助首頁(yè)秒懂百科特色百科知識(shí)專題加入百科百科團(tuán)隊(duì)權(quán)威合作下載百科APP個(gè)人中心收藏查看我的收藏0有用+10iapfree播報(bào)討論上傳視頻瘋狂機(jī)器貓?jiān)O(shè)計(jì)的iPhone內(nèi)購(gòu)破解插件iapfree是由中國(guó)作者crazydoraemon(瘋狂機(jī)器貓)設(shè)計(jì)的iPhone內(nèi)購(gòu)破解插件。功能強(qiáng)大,超過(guò)iap cracker。已經(jīng)永遠(yuǎn)不再更新。且服務(wù)器已于2013年7月關(guān)閉,新用戶安裝后無(wú)法下載核心插件,使新用戶將無(wú)法使用該軟件破解內(nèi)購(gòu)。軟件名稱iapfree軟件版本4.0.1作????者crazydoraemon類????別iPhone內(nèi)購(gòu)破解插件目錄1軟件信息2軟件操作?安裝方法?使用3注意軟件信息播報(bào)編輯Iapfree2013年最終版本為4.0.1,作者表示完全支持6.X設(shè)備。此款越獄后的deb插件可以從iapfree貼吧中的教程貼 [1]下載到。2013年2月16日,作者在微博發(fā)文表示,由于訪問(wèn)量過(guò)大,官方源主機(jī)服務(wù)提供商以CPU超限為由,已對(duì)主機(jī)停機(jī)。希望大家耐心等待。同時(shí),作者也提醒大家,IAPFree永遠(yuǎn)也不會(huì)接受任何形式的捐贈(zèng)或收費(fèi),大家要注意募捐信息的真?zhèn)巍?013年2月18日,IAPFree插件列表服務(wù)器已部署完畢,由于域名解析先后順序不同,所以有些用戶可能暫時(shí)依然無(wú)法使用。估計(jì)明天早上之前應(yīng)該都能恢復(fù)正常了。由于服務(wù)器剛剛部署完畢,不知道負(fù)載是否可以承受,作者提醒大家,請(qǐng)大家不要過(guò)分刷新列表,請(qǐng)節(jié)省服務(wù)器資源。源地址見(jiàn)拓展閱讀第二與第三條。2013年4月28日,IAPFree更新至4.0版本 [2],內(nèi)購(gòu)核心插件更新至2.0.1。2013年7月23日,瘋狂機(jī)器貓?jiān)谖⒉┌l(fā)布,不再更新內(nèi)購(gòu)插件。原因是有人惡意散發(fā)言論。iapfree免費(fèi)的內(nèi)購(gòu)時(shí)代將就此終結(jié)。2013年12月17日,瘋狂機(jī)器貓?jiān)谖⒉┌l(fā)布:“興許,只是興許哈。2014年我會(huì)回地球。”2014年1月1日,瘋狂機(jī)器貓?jiān)谖⒉┬颊陂_(kāi)發(fā)一套新的玩意。會(huì)把內(nèi)購(gòu),內(nèi)存修改,助手型輔助內(nèi)掛功能等集于一身。使用形式也會(huì)有所改變,敬請(qǐng)關(guān)注。軟件操作播報(bào)編輯安裝方法首先請(qǐng)確保您的蘋(píng)果設(shè)備已越獄,非越獄的蘋(píng)果設(shè)備將無(wú)法安裝DEB及之后的安裝和使用。1、從iapfree吧 [1]下載正版iapfree及瘋貓公共庫(kù)DEB安裝包。2、使用iTools、同步推、PP助手等同步軟件連接電腦。3、打開(kāi)文件系統(tǒng),依次找到/var/root/Media/Cydia/AutoInstall/這個(gè)路徑。4、將需要安裝的DEB文件拖入即可。5、重新啟動(dòng)設(shè)備2次。6、找到IAPFree圖標(biāo),初次使用需要覆蓋插件列表,具體在iapfree吧教程中有介紹。7、進(jìn)入游戲,點(diǎn)擊內(nèi)購(gòu)按鈕,不用再輸入賬號(hào),直接內(nèi)購(gòu)成功!13、如有需要,可以下載其他app專用插件。(2013年4月中旬起已停止升級(jí)核心功能插件及其他插件。)使用1、啟動(dòng)軟件后,就可以直觀看到設(shè)置界面,默認(rèn)情況下設(shè)置為生效,無(wú)需所任何修改。2、將軟件設(shè)置畫(huà)面拉至中下部分,會(huì)看到原始UDID,如果使用原始UDID進(jìn)行內(nèi)購(gòu),將有可能被蘋(píng)果官方封停。3、在內(nèi)購(gòu)之前,請(qǐng)點(diǎn)擊“隨機(jī)UDID”讓軟件生成一段虛擬UDID,用來(lái)欺騙蘋(píng)果的驗(yàn)證程序并且避免軟件開(kāi)發(fā)商剝奪您的使用權(quán)。4、以上步驟操作完畢后,就可以退出軟件,開(kāi)啟游戲中的商店嘗試內(nèi)購(gòu)。內(nèi)購(gòu)成功,將不提示輸入蘋(píng)果ID和密碼。注意播報(bào)編輯1.如果是IAPFree不支持的軟件或游戲,點(diǎn)了內(nèi)購(gòu)之后會(huì)顯示類似“iTunes出錯(cuò)”之類的提示,即使是想使用真正付費(fèi)也不可,除非關(guān)閉硬開(kāi)關(guān)。2.截至2013年5月20日,iapfree的最新版本為4.0.1。最終版本為4.0.1,據(jù)消息人士稱可破解多款應(yīng)用及游戲,甚至包括FIFA13等,但暫時(shí)還未有消息發(fā)布。3.瘋狂機(jī)器貓?jiān)谛吕宋⒉┥下暶鲝奈磩?chuàng)建過(guò)QQ群,官方消息只會(huì)在官網(wǎng)、新浪微博、騰訊微博、bhgbox論壇、推特、臉譜網(wǎng)發(fā)布。詳情請(qǐng)查看早期的新浪微博消息,當(dāng)時(shí)瘋狂機(jī)器貓嚇蒙了,大把人被騙了錢(qián)。4.瘋狂機(jī)器貓官網(wǎng)上聲明從未發(fā)起過(guò)任何捐款、贊助信息,且以后也不會(huì)發(fā)起。新手上路成長(zhǎng)任務(wù)編輯入門(mén)編輯規(guī)則本人編輯我有疑問(wèn)內(nèi)容質(zhì)疑在線客服官方貼吧意見(jiàn)反饋投訴建議舉報(bào)不良信息未通過(guò)詞條申訴投訴侵權(quán)信息封禁查詢與解封?2024?Baidu?使用百度前必讀?|?百科協(xié)議?|?隱私政策?|?百度百科合作平臺(tái)?|?京ICP證030173號(hào)?京公網(wǎng)安備110000020000

LocaliAPHeper 內(nèi)購(gòu)神器 | 最簡(jiǎn)潔的中文源

LocaliAPHeper 內(nèi)購(gòu)神器 | 最簡(jiǎn)潔的中文源

Cydiakk源

關(guān)于我們

官方Q群

官方主頁(yè)

官方博客

展開(kāi)

首頁(yè)

博客

登錄

Cydiakk中文源?

首頁(yè)

資源列表

技術(shù)文章

關(guān)于我們

資源列表/[工具 ]

您未登錄賬號(hào)

LocaliAPHeper 內(nèi)購(gòu)神器

軟件版本:2.0

支持設(shè)備:

iPhone

iPad

文件大?。?9.39 KB

支持版本:iOS 6.0 ~ iOS 15.6

?

提供作者:ant

下載數(shù)量:28609次??????????總下載量:28613次

收藏?cái)?shù)量:106次

?

Cydiakk中文源?

https://apt.cydiakk.com/

5050

資源

494343

粉絲

1654477

人氣

去看看

軟件內(nèi)容

掃描二維碼下載

請(qǐng)確保到

添加Cydiakk中文源?

刷新列表 以后再掃描二維碼下載

軟件描述:LocaliAPHeper 內(nèi)購(gòu)神器破解小助手破解部分軟件的收費(fèi),彈窗付款點(diǎn)擊取消即可

軟件簡(jiǎn)介:

發(fā)布支持 iOS13

兼容支持 iOS6~12

簡(jiǎn)體中文漢化版

具體內(nèi)容?預(yù)覽截圖

更新說(shuō)明:

屏幕截圖

搜索

最新上傳更多

Sushi音樂(lè)模幅

83下載 / 1.0版本

2024-03-07 00:23:44發(fā)布

No2Theft iOS 16設(shè)備防盜系統(tǒng)

50下載 / 1.1.1版本

2024-03-07 00:23:42發(fā)布

Latchkey鎖頭自定義

72下載 / 2.3.2版本

2024-03-07 00:23:20發(fā)布

BioProtect XS 面容/指紋加密【破解版】

34下載 / 4.6-229版本

2024-03-07 00:23:14發(fā)布

最新下載更多

Diatrus Installer為unc0ver安裝Sileo

2970下載 / 0.0001版本

2024-03-08 02:21:37發(fā)布

CCLess++控制中心模塊

3481下載 / 1.8.2版本

2024-03-08 02:21:29發(fā)布

阿凡達(dá)屏蔽助手

32524下載 / 1.0.0.4-4版本

2024-03-08 02:20:59發(fā)布

GoodWiFi無(wú)線WiFi增強(qiáng)

1765下載 / 1.2版本

2024-03-08 02:20:46發(fā)布

廣告終結(jié)者

3727下載 / 2.3.1版本

2024-03-08 02:20:43發(fā)布

源主推薦

MCPatch屏蔽OTA更新

允許安裝iOS12屏蔽OTA更新描述文件

新騰翔嘉麗圓縮小版

好看的騰翔嘉麗圓縮小版字體

Bubble 主題

精致的Bubble主題,圖標(biāo)涵蓋464個(gè)

Unc&雷神&Ele 最新防凍屏插件

完美解決11系統(tǒng)全系列越獄工具神經(jīng)性卡死、假死、凍結(jié)

STMoon 超好看的單色主題[VIP5專享]

超好看的單色輪廓主題

MaxiX 主題 [VIP5專享]

好看的多彩主題

BlackOrs 2 主題 [VIP5專享]

超精美的主題 兼容7.0-11.4系統(tǒng)

Amara XI 主題 [VIP5專享]

超精美的主題 兼容7.0-11.4系統(tǒng)

旗下網(wǎng)站

博客

|

Cydiakk中文源

|

版權(quán)與免責(zé)聲明

粵ICP備18011282號(hào)-4

Copyright 版權(quán)所有 ? 2017-2024 CydiaKK.Com ?. All rights reserved. Cydiakk中文源?版權(quán)或產(chǎn)權(quán)保護(hù)

返回頂部

404 Not Found


nginx/1.25.2
亚洲精品乱码久久久久久蜜桃不卡| 中文字幕亚洲一区二区三区| 99视频精品全部在线观看| 又爽又黄又无遮挡的视频在线观看| 久久人人97超碰爱香蕉| 熟女俱乐部五十路二区av| 国产成AV人片在线观看无码| 免费人成在线观看成人片| 精品丝袜国产自在线拍AV| 狼人大香伊蕉国产WWW亚洲| 国产AV大陆精品一区二区三区| 国产精品无码一区二区在线观一| 五月综合激情婷婷六月色窝| 无码人妻精品一区二区三区蜜桃| 国产综合精品一区二区三区| 成人3D动漫一区二区三区| 国产精品白丝AV嫩草影院| 免费萌白酱国产一区二区三区| 国产午夜不卡片免费视频| 亚洲熟女一区二区三区| 99国产精品欧美一区二区三区| 亚洲一区二区三区在线观看网址| 亚洲av成人无码网站大全| 国产手机在线αⅴ片无码观看| 区二区三区国产精华液区别大吗| 狠狠狠地在啪线香蕉| 欧美午夜福利1000集2019年| 老司机带带我在线精彩免费| 国产寡妇树林野战在线播放| 日韩精品专区AV无码| 青青视频在线观看免费2| 久久久久久国产精品mv| 亚洲av无码一区东京热久久| 天堂一区人妻无码| 亚洲AV无码成人精品区狼人影院| 暖暖在线视频成人日本二区| 亚洲人成网站免费播放| 午夜爽爽爽男女免费观看2020| 亚洲国产精品成人无码区| 亚洲中文字幕无码爆乳AV| 勃起大粗又硬湿又滑深又长|