有以下幾點需注意︰
1.官方強調︰測試in-app purchase(以下簡稱iap)請勿使用模擬器!
2.如果你要測試的是預保留產品ID(reserved product IDs),那就不需要使用測試帳號。如︰android.test.purchased這組預設ID是讓你拿來測試購買後會發生哪些回傳值。
3.確認你裝置上的Android Market版本是否適合運行iap
真實測試你的iap物品
1.需要在軟體發佈網站裡記錄一組測試帳號
2.上傳的apk不需要被發佈,但是iap內的物品必須被發佈!
注意︰Android Market上面這個未發佈的apk的版本編號以及簽章(Signature)需以裝置上的版本一致
3.購買時帳目會真實被記進tester的Google checkout裡,
之後user跟開發者提出退費請求(可能寄e-mail或什麼的),
開發者就可以在Google Checkout Merchant account使用退費機制(refund)。
此時Google checkout會寄出該user已經退費的訊息給Android Market,
Android Market再寄出訊息給user手上的應用程式。
如果你的應用程式當初有寫收到退費的訊息時要做什麼處置,
那麼程式就會在這個時候開始動作。
譬如︰沒收紅藥水、魔法藥水。
4.請用釋出版本的signature,而非debug的signature
5.將一臺裝置的帳號設成測試帳號
- Open Settings on your device.打開裝置裡的設定
- Touch Privacy.點擊隱私設定
- Touch Factory data reset.點擊重設為原廠設定
- Touch Reset phone.點擊重設手機按鈕
將測試帳號設為主帳號的唯一方式,就是使用重設為原廠設定。
這樣做才能確保你是用主帳號登入Android Market
========實測結果=========
1.當你真的去買了iap內的東西,測試帳號裡的Google Checkout裡會有消費記錄
2.若馬上移除掉apk,這筆iap消費記錄也會馬上被退款(未免也太迅速了吧⋯)
3.若你要重新購買時,Android Market的iap視窗會回應你︰系統正在處理您的訂單,稍候幾分鐘即可取得您的商品。
4.後來,過了40分鐘,才能又購買這筆iap的產品
07-13 14:53:33.768: E/Volley(10194): [16] BasicNetwork.performRequest: Unexpected response code 500 for https://android.clients.google.com/fdfe/completePurchase
ReplyDelete07-13 14:53:33.778: W/Finsky(10194): [1] CheckoutPurchase.onErrorResponse: DisplayErrorMessage[系统无法处理您的订单,请重试。]
07-13 14:53:33.778: E/Finsky(10194): [1] CheckoutPurchase.setError: type=UNKNOWN, code=-1, message=系统无法处理您的订单,请重试。
07-13 14:53:33.868: D/Finsky(10194): [1] CarrierProvisioningAction.run: No need to fetch provisioning from carrier.
你好,我测试应用程式内付费时总是返回以上信息,请问你有遇见这种现象吗?在google给的样例中需要修改或注意哪些细节,期待你的帮助,谢谢。
您好,我在測試iap的時候,發現android.test.purchased , android.test.canceled ,
ReplyDeleteandroid.test.refuned ,
都會有正常的反應,但是執行potion 或是 sword 的交易在按下接受且付款之後
他會顯示"完成中" 接著就會跳出一個錯誤視窗 "無法處理您的訂單,請再試一次"
可是再試幾次都是這樣呢,請問您知道這是什麼問題嗎?
ps. 手機的prime account跟發佈app的帳號一樣,只是把這個帳號加入倒test account裡面,不知道這樣是否可測試,要不然沒有另外一個google帳號有google checkout的帳號
期待您的幫助與謝謝您的回應
为何我夏下不到订单
ReplyDelete