このチュートリアルhttp://blog.blundell-apps.com/simple-inapp-billing-payment/に従って、アプリ内購入について学ぼうとしています
これまでの私のコードは次のとおりです。
public class main extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("BillingService", "Starting");
setContentView(R.layout.main);
startService(new Intent(this, BillingService.class));
BillingHelper.setCompletedHandler(mTransactionHandler);
}
////////////////////////////////
public Handler mTransactionHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
Log.e("IN APP", "Transaction complete");
Log.e("IN APP", "Transaction status: "+BillingHelper.latestPurchase.purchaseState);
Log.e("IN APP", "Item purchased is: "+BillingHelper.latestPurchase.productId);
if(BillingHelper.latestPurchase.isPurchased())
{
showItem();
}
};
};
////////////////////////////////
public void BuyButtonClick(View v) {
if(BillingHelper.isBillingSupported()){
Log.e("IN APP","Trying to buy...");
BillingHelper.requestPurchase(this, "android.test.purchased");
} else {
Log.e("IN APP","Can't purchase on this device");
}
}
////////////////////////////////////////////////
private void showItem() {
TextView tv1 = (TextView)findViewById(R.id.tv1);
tv1.setText("PAID!");
}
////////////////////////////////////////////////
@Override
protected void onDestroy() {
BillingHelper.stopService();
super.onDestroy();
}
////////////////////////////////
}
すべて正常に動作しているようですが、アプリの起動時にアイテムが購入されたかどうかを確認する方法も必要です。BillingHelper.verifyPurchase(signedData, signature)を使用する可能性があると思いますが、そこにどのようなデータと署名を入れればよいでしょうか? それとも何か別の方法があるのでしょうか?
ありがとう!