android接入google支付

google支付集成在android項目中,一般用於外卡支付。開發過程中必須保證全程都鏈接vpn。推薦非凡vpn或者greenvpn,都是付費的,用起來方便。

打開sdk manager,保證以下方框中的Googe Play Billing Library是install的狀態。


然後進入sdk\extras\google\play_billing文件夾下,如下,samples就是google支付的例子和我們接入項目所需的各種文件。



在eclipse中import samples下的項目,如下圖所示,

com.android.vending.billing和com.example.android.trivialdrivesample.util兩個包都拷貝到新項目中即可。

在AndroidManifest.xml文件中添加用戶的google支付權限。



至此,google支付的開發環境就搭建好了。


接下來進行google後臺配置,首先要有一個google開發者賬號,這個賬號不同於普通google賬號哦,這個賬號需要支付每年25美金,具體申請方法可以google,我用的是公司已經申請好的。

登錄google開發者網站,添加一個測試版的apk,注意這個apk的包名、versionid、versionname、還有打包的簽名必須和最終上傳正式版的一致,意思就是說支付的時候這四樣東西必須一致纔可以支付!!!alpha版本(應該是beta或者alpha版本都可以,但是我選擇了alpha版本),上傳之後選擇測試方式,我選擇的是封閉式測試,添加一個gmail賬號作爲測試賬號,切記這個測試賬號不能是我們登錄開發者網站這個賬戶,必須不是開發者賬號,而是普通的gmail賬號,用於測試時登錄googleplay,購買產品時使用。

最下邊這個網址,就是測試賬號登錄後可以看到的產品的地址,這個產品只有測試賬號可以看到。



最好是在這裏也把測試賬號添加進去。


添加應用內商品,目前google後臺只能添加受管理商品,但是不會對我們程序有什麼影響,受管理的商品購買成功後立即消耗掉就可以變爲不受管理的商品了,可以多次購買了。

受管理的商品就是類似於一次性的道具之類的,只能購買一次,再次購買會出錯。

不受管理的商品就是類似於金幣之類的,可以多次購買。

所以在後臺,我們添加的商品都是受管理的商品。添加的商品ID爲唯一的購買標誌。



商品需要激活,否則無法購買,而且重要的是我們上傳的測試版apk,必須發佈!!!測試版也要發佈!!!發佈爲測試版的!!!之前就是不敢發佈,以爲不需要發佈,調試了很久,購買商品時總是提示如下圖錯誤。


至此google後臺apk和商品配置已經完成,開始進行手機端的配置,我用真機進行測試,手機連接翻牆vpn是必不可少的,另外手機必須開啓google服務,並且必須安裝google商店!!!  否則代碼的第一步會根本無法進去回調!!!安裝google服務,首先一定要先獲取手機的root權限,我的手機root了好幾次都不成功,360一鍵root,百度一鍵root,都試過,最後用刷機精靈root成功,這個要多試幾遍。

我用這個鏈接裏提供的google一鍵安裝器http://www.muzhiwan.com/com.muzhiwan.gsfinstaller-86095.html,非常管用,直接就可以把需要的都安裝上了。可以看到google服務和google商店都安裝成功了。

然後登陸google商店,記得一定要用之前添加的測試人員的gmail賬號登錄!!!

登錄成功後,所有的google應用其實都登錄的是這個賬號了,我們的測試apk支付時也是用的這個測試賬號!!!

至此手機端的配置也完成了。


至此所有配置完成了,可以寫代碼了,有哪些漏掉的話請參考文末鏈接。


測試是比較糾結的,不能直接在eclipse下運行然後測試,每次測試必須用上傳的apk的那個簽名來對apk進行簽名,然後在手機上運行,進行測試!是很麻煩,但是好在google支付接入並不複雜,複雜的是各種配置,所以可以代碼全部寫完再進行測試。


具體代碼也不寫了,官方demo裏有,文末鏈接裏也有。本文主要記錄下我開發的時候遇到的一些坑,其實是簡單的,只是沒做過的會不太瞭解流程,就會比較浪費時間了!!!



另外服務器驗證問題,如果我們項目想出售應用內的不受管理商品,例如金幣,訂單完成後要調用消耗的方法來把商品消耗掉,消耗成功之後把回調的Purchase對象傳遞給服務器,切記不要只傳遞purchase.toString(),因爲sdk源碼裏purchase.toString()這個方法並沒有把String signature這個值加入進去,這也是個非常大的坑!!!一定要把Purchase類的mOriginalJson(訂單信息)和signature都傳遞給服務器去驗證!!!

其實後臺驗證還沒做完,還不知道是不是這樣驗證。。。做完再更。。。







參考鏈接

http://developer.android.com/google/play/billing/index.html

http://blog.csdn.net/jk0803_wantao/article/details/43668071

http://blog.csdn.net/midashao/article/details/10122333

http://blog.csdn.net/zzstack/article/details/22814051

http://leenjewel.github.io/blog/2014/11/21/google-play-in-app-billing-cai-guo-de-na-xie-keng/

http://blog.csdn.net/wolfking_2009/article/details/9140891


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章