什么是Google Play?
受?chē)?guó)內(nèi)政策影響,大部分android用戶(hù)是沒(méi)有接觸過(guò)google play的宙搬。Google Play是什么呢?是下載應(yīng)用的Google Play Store拓哺?是必須安裝的Google Play服務(wù)框架勇垛?還是在Store中買(mǎi)物品時(shí)的Google Play支付。我更樂(lè)意將Google Play劃分為以下幾個(gè)部分:
Google Play Store
Google Play Services
Google Play支付
Google Play Server
Google Play Store
Google Play Store
提供了應(yīng)用下載士鸥,類(lèi)似與應(yīng)用寶窥摄。提供的應(yīng)用分為付費(fèi)/免費(fèi)應(yīng)用,付費(fèi)應(yīng)用指支持google play應(yīng)用內(nèi)購(gòu)買(mǎi)的應(yīng)用础淤。
Google Play Services
Google Play Services提供了google play支持服務(wù)崭放,如google賬戶(hù)服務(wù)等。
Google Play支付
Google Play支付鸽凶,其作用類(lèi)似于微信支付或qq錢(qián)包币砂,是本文介紹的重點(diǎn)。當(dāng)用戶(hù)在google play store下載某個(gè)付費(fèi)應(yīng)用玻侥,并進(jìn)行購(gòu)買(mǎi)時(shí)决摧,實(shí)際的購(gòu)買(mǎi)是通過(guò)google play支付完成。
Google Play Server
Google Play的服務(wù)端凑兰,提供支付訂單管理掌桩、票據(jù)驗(yàn)證等各種操作。
如何測(cè)試Google Play支付姑食?
小A開(kāi)發(fā)了某款應(yīng)用波岛,該應(yīng)用具有應(yīng)用內(nèi)購(gòu)買(mǎi)功能(用戶(hù)能在應(yīng)用內(nèi)進(jìn)行購(gòu)買(mǎi),如在游戲中購(gòu)買(mǎi)鉆石游戲幣)音半。小A現(xiàn)在需要將該應(yīng)用發(fā)布到Google Play Store中则拷,發(fā)布前希望能測(cè)試該應(yīng)用的購(gòu)買(mǎi)功能贡蓖。Google Play提供了免費(fèi)測(cè)試購(gòu)買(mǎi)功能,即測(cè)試用戶(hù)可以免費(fèi)購(gòu)買(mǎi)應(yīng)用內(nèi)物品煌茬。
該測(cè)試需要在Google Play Console中進(jìn)行配置
Google Play應(yīng)用內(nèi)購(gòu)買(mǎi)
什么是應(yīng)用內(nèi)購(gòu)買(mǎi)斥铺?
簡(jiǎn)單來(lái)說(shuō),就是用戶(hù)能在應(yīng)用內(nèi)購(gòu)買(mǎi)物品坛善,如用戶(hù)能在王者榮耀中買(mǎi)游戲幣買(mǎi)鉆石等晾蜘。
Google Play提供了應(yīng)用內(nèi)購(gòu)買(mǎi)的能力,說(shuō)人話(huà)就是:用戶(hù)可以通過(guò)Google Play支付來(lái)完成應(yīng)用內(nèi)物品的購(gòu)買(mǎi)眠屎。
回到小A發(fā)布應(yīng)用的例子上笙纤,先回答幾個(gè)問(wèn)題:
1. 小A為什么要發(fā)布應(yīng)用到Googel Play Store呢?
答:推廣應(yīng)用组力,提高下載量省容,賺錢(qián)。
2. 應(yīng)用發(fā)布到Google Play Store有什么要求呢燎字?
答:這么說(shuō)吧腥椒,發(fā)布到Google Play Store的應(yīng)用如果具有應(yīng)用內(nèi)購(gòu)買(mǎi)功能的話(huà),Google要求一定要用Google Play支付候衍。為什么呢笼蛛?Google 要分成,分30%蛉鹿。那Google當(dāng)然得知道每個(gè)應(yīng)用的賬單流水了滨砍,要不然怎么計(jì)算這30%。
那Google Play應(yīng)用內(nèi)購(gòu)買(mǎi)是怎么玩的呢妖异?
ps: 為防講的不清楚惋戏,先貼個(gè)官方版:google play應(yīng)用內(nèi)購(gòu)買(mǎi)
先舉個(gè)例子:深圳有很多大商場(chǎng),如天虹他膳,天虹中有各種品牌的店面响逢,如adidas,nike棕孙。5號(hào)小B發(fā)工資了舔亭,帶著妹子來(lái)逛天虹,想給妹子買(mǎi)雙運(yùn)動(dòng)鞋蟀俊。逛了一大圈后钦铺,決定在nike店里買(mǎi)鞋x。服務(wù)員給小B開(kāi)了單子肢预,叫他出門(mén)左拐去收銀臺(tái)付款矛洞;小B拿著單在收銀臺(tái)付錢(qián)后,收銀員給小B一個(gè)付錢(qián)后的票據(jù)误甚;小B拿著票據(jù)缚甩,回到nike店谱净,取回買(mǎi)好的鞋子窑邦。
上面例子中擅威,可類(lèi)比成:
小B買(mǎi)鞋的例子涉及到幾個(gè)概念:
物品
下單
支付
票據(jù)
發(fā)貨
物品
國(guó)外都是物品概念,這就話(huà)怎么理解呢冈钦?
即一個(gè)物品對(duì)應(yīng)一個(gè)物品Id郊丛,用戶(hù)一次只能購(gòu)買(mǎi)一個(gè)物品。
假設(shè)某游戲存在游戲幣x瞧筛,假如小C想購(gòu)買(mǎi)5個(gè)游戲幣x厉熟,有兩種方法,方法A:一次購(gòu)買(mǎi)5個(gè)游戲幣x较幌;方法B:購(gòu)買(mǎi)5次揍瑟,每次購(gòu)買(mǎi)一個(gè)游戲幣x。國(guó)內(nèi)支持方法A乍炉、B绢片,但在國(guó)外如google play或iap,只支持方法B岛琼。如果想一次購(gòu)買(mǎi)5個(gè)游戲幣x底循,那在google play中只能將5個(gè)游戲幣x配置成一個(gè)物品。
Google Play將物品劃分為:消耗型物品和訂閱型物品槐瑞。
消耗型物品
用戶(hù)物品購(gòu)買(mǎi)完成后必須消耗熙涤,否則不能再次購(gòu)買(mǎi)該物品。
回到上面例子困檩,小C想購(gòu)買(mǎi)5個(gè)游戲幣x祠挫,現(xiàn)只能通過(guò)購(gòu)買(mǎi)5次來(lái)實(shí)現(xiàn)。那小C在每次購(gòu)買(mǎi)完游戲幣x后悼沿,都必須通過(guò)Google Play的消耗接口消耗該物品茸歧,否則下次小C不能再購(gòu)買(mǎi)游戲幣x,并提示小C“已擁有該物品“”显沈。
消耗接口:Google Play提供的API软瞎,用來(lái)物品購(gòu)買(mǎi)后的消耗。
訂閱型物品
訂閱物品購(gòu)買(mǎi)后不需要消耗拉讯。
訂閱型物品類(lèi)似于國(guó)內(nèi)的包月涤浇、7天特權(quán)等概念。如騰訊視頻的月卡會(huì)員魔慷、vip7天特權(quán)只锭,對(duì)應(yīng)到Google Play就是:按月訂閱型物品,按周訂閱型物品院尔。
示例
上圖是配置在Google Play應(yīng)用的物品信息蜻展,可以看出:
每個(gè)物品對(duì)應(yīng)一個(gè)唯一的物品Id
每個(gè)物品有對(duì)應(yīng)的價(jià)格
后兩個(gè)訂閱型物品喉誊,是按3個(gè)月訂閱的,即用戶(hù)購(gòu)買(mǎi)三個(gè)月后纵顾,用戶(hù)不再擁有該物品伍茄。
下單/支付
Google Play是不區(qū)分下單和支付的,即當(dāng)用戶(hù)購(gòu)買(mǎi)物品時(shí)施逾,用戶(hù)支付完成后敷矫,Google Play Server會(huì)為這次購(gòu)買(mǎi)生成一個(gè)唯一的訂單號(hào)。
用戶(hù)購(gòu)買(mǎi)完成后汉额,Google會(huì)將訂單信息發(fā)送到用戶(hù)關(guān)聯(lián)的GMail郵箱中:
測(cè)試用戶(hù)購(gòu)買(mǎi)
應(yīng)用的測(cè)試用戶(hù)可免費(fèi)購(gòu)買(mǎi)該應(yīng)用內(nèi)的物品曹仗,Google Play Server同樣會(huì)為其生成唯一的訂單號(hào),但該訂單號(hào)是由字母組成蠕搜,而真實(shí)付費(fèi)購(gòu)買(mǎi)訂單是由數(shù)字組成怎茫,如上圖所示。
票據(jù)
當(dāng)用戶(hù)支付完成后妓灌,開(kāi)發(fā)者在支付接口回調(diào)中轨蛤,會(huì)收到這次購(gòu)買(mǎi)的票據(jù)信息。如:
如上所示旬渠,票據(jù)主要包含了以下部分:
訂單號(hào)
應(yīng)用包名
購(gòu)買(mǎi)的物品Id
購(gòu)買(mǎi)時(shí)間
購(gòu)買(mǎi)狀態(tài)
透?jìng)髯侄?/b>
該字段是開(kāi)發(fā)者調(diào)用Google Play支付接口時(shí)傳入俱萍,支付完成后,在票據(jù)中返回告丢。其作用主要有:
安全驗(yàn)證枪蘑,通過(guò)判斷該字段是否相同來(lái)判斷是否為虛假票據(jù)。
信息關(guān)聯(lián)岖免,如在米大師中岳颇,米大師會(huì)為每次購(gòu)買(mǎi)生成唯一的訂單號(hào),通過(guò)該字段可以實(shí)現(xiàn)米大師訂單號(hào)與Google Play訂單號(hào)的關(guān)聯(lián)颅湘。
GW返回令牌
該字段主要用于Google Developer API的使用话侧。
發(fā)貨
Google Play不存在發(fā)貨概念,當(dāng)用戶(hù)支付完成后闯参,開(kāi)發(fā)者只需在Google Play支付回調(diào)中通知應(yīng)用服務(wù)端進(jìn)行發(fā)貨瞻鹏,并在發(fā)貨完成后,調(diào)用Google Play的消耗接口進(jìn)行消耗即可鹿寨。
舉個(gè)栗子:
小B在王者榮耀韓國(guó)版買(mǎi)了1000點(diǎn)券新博,支付通過(guò)Google Play完成,小B在完成支付后脚草,查看賬戶(hù)余額發(fā)現(xiàn)購(gòu)買(mǎi)1000點(diǎn)券已經(jīng)發(fā)放赫悄。這1000點(diǎn)券由誰(shuí)發(fā)放呢?當(dāng)然是由應(yīng)用自身去完成發(fā)貨,即王者榮耀埂淮,而由于王者榮耀韓國(guó)版接的是米大師姑隅,物品托管在米大師,所有這1000點(diǎn)券就交由米大師去發(fā)放了倔撞。
發(fā)貨通知方式
Google Play
Google Play采用SDK通知方式讲仰,通知應(yīng)用服務(wù)器發(fā)貨:
用戶(hù)支付完成后,開(kāi)發(fā)者在Google Play支付回調(diào)中通知應(yīng)用SDK發(fā)貨误窖;
應(yīng)用SDK通知應(yīng)用Server發(fā)貨
國(guó)內(nèi)渠道
國(guó)內(nèi)大部分渠道采用的是Server通知方式叮盘,即由支付渠道Server通知應(yīng)用Server進(jìn)行發(fā)貨秩贰。
Google Play存在問(wèn)題
Google Play從發(fā)布到現(xiàn)在已歷經(jīng)多個(gè)版本霹俺,當(dāng)年的業(yè)務(wù)場(chǎng)景發(fā)展到現(xiàn)在也暴露出了不是問(wèn)題。業(yè)務(wù)在接入Google Play時(shí)也經(jīng)常會(huì)碰到各種疑惑毒费,這其中包括:
匯率
幣種
退款
匯率
Google使用用戶(hù)下單時(shí)的匯率丙唧,并將買(mǎi)家?guī)欧N換算成Google賬號(hào)所有幣種。現(xiàn)在匯率是全天候更新觅玻,Google會(huì)自動(dòng)完成幣種換算想际。
這意味著啥?
意味著開(kāi)發(fā)者再也不用關(guān)注匯率帶來(lái)的坑了溪厘!在之前胡本,Google Play的匯率不是實(shí)時(shí)更新的,那就可能存在用戶(hù)通過(guò)匯率差低價(jià)買(mǎi)入物品畸悬,而導(dǎo)致開(kāi)發(fā)者損失侧甫。
關(guān)于匯率差,還存在一個(gè)問(wèn)題:就是Google Play結(jié)算問(wèn)題蹋宦。
Google Play結(jié)算采用的方式應(yīng)該是固定周期結(jié)算(降低結(jié)算費(fèi)用)披粟,那可能存在以下情況:
開(kāi)發(fā)者銀行賬戶(hù)是香港的,用戶(hù)在美國(guó)購(gòu)買(mǎi)了物品冷冗,購(gòu)買(mǎi)時(shí)匯率為A守屉,而到Google Play結(jié)算時(shí)美元兌換港幣匯率發(fā)生變化,此時(shí)匯率為B蒿辙。如果B小于A拇泛,用戶(hù)是否有損失,此時(shí)Google Play是如何進(jìn)行處理的思灌?
幣種
當(dāng)用戶(hù)點(diǎn)擊夠買(mǎi)某物品時(shí)俺叭,會(huì)彈出Google Play確認(rèn)框,上面會(huì)顯示物品的價(jià)格和幣種:
之前測(cè)試發(fā)現(xiàn)习瑰,不同的情況绪颖,該幣種不一樣。這個(gè)幣種是由什么決定的呢?
綁卡用戶(hù)
什么是綁卡用戶(hù)柠横,即用戶(hù)在Google Payment完成信用卡的綁定窃款,綁卡時(shí)需要填寫(xiě)用戶(hù)的歸屬地。
綁卡后牍氛,以后用戶(hù)的支付幣種就由綁卡用戶(hù)的歸屬地決定晨继。
非綁卡用戶(hù)
如果用不未綁卡,那這個(gè)幣種就是根據(jù)用戶(hù)的IP決定的搬俊。如用戶(hù)IP在香港紊扬,顯示的就是HK了,在美國(guó)顯示的就是US唉擂。
固定幣種
某些區(qū)域餐屎,如南非,可能由于當(dāng)?shù)刎泿艆R率變化太快玩祟。Google Play在這些區(qū)域采用默認(rèn)幣種進(jìn)行支付腹缩,默認(rèn)幣種為美元。
退款
Google Play允許用戶(hù)在購(gòu)買(mǎi)物品兩小時(shí)內(nèi)全額退款空扎,但一個(gè)用戶(hù)下一個(gè)物品只能退款一次藏鹊。
Google Play允許的退款范圍包括:
購(gòu)買(mǎi)兩小時(shí)內(nèi)退款
未經(jīng)授權(quán)的交易退款:65天內(nèi)可申請(qǐng)退款
商品有缺陷或無(wú)意中進(jìn)行交易退款:48小時(shí)內(nèi)可申請(qǐng)退款,48小時(shí)后由開(kāi)發(fā)者決定是否退款转锈。
退款存在問(wèn)題:
用戶(hù)在某游戲中購(gòu)買(mǎi)了物品x盘寡,兩小時(shí)內(nèi)進(jìn)行退款,此時(shí)物品已經(jīng)發(fā)貨撮慨。此時(shí)物品已發(fā)貨竿痰,但開(kāi)發(fā)者并未收到錢(qián),導(dǎo)致開(kāi)發(fā)者損失甫煞,而Google Play并不補(bǔ)償這部分損失菇曲。
解決方法:
首先Google Play針對(duì)退款進(jìn)行限次,兩小時(shí)內(nèi)同一物品只能退款一次抚吠,其它退款需要進(jìn)行審核常潮。其次,應(yīng)用開(kāi)發(fā)者可以通過(guò)接入風(fēng)控系統(tǒng)來(lái)發(fā)現(xiàn)惡意退款楷力。米大師接入了風(fēng)控系統(tǒng)喊式,能根據(jù)用戶(hù)設(shè)備賬號(hào)等信息判斷用戶(hù)是否是惡意退款,從而避免業(yè)務(wù)損失萧朝。