我开发了应用程序版本2的应用程序并将其发布到开发人员Google上,现在有人下载应用程序并尝试购买它。在购买消息时,即使在此消息应用程序“解锁”之后,现在向他显示“您的卡正在下降”。现在这是一个非常困难的情况,即在应用程序解锁时不会付款。这个问题是我的应用中的应用结算方法(逻辑)还是谷歌。
如果它在我的应用程序中,那么有任何方法可以检查人卡是否为“被拒绝的卡”,所以在这种方法中我可以限制我的应用程序不解锁应用程序。
任何应用程序将不胜感激。
我在BillingReceviver中有这段代码:
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Consts.ACTION_PURCHASE_STATE_CHANGED.equals(action)) {
String signedData = intent.getStringExtra(Consts.INAPP_SIGNED_DATA);
String signature = intent.getStringExtra(Consts.INAPP_SIGNATURE);
purchaseStateChanged(context, signedData, signature);
} else if (Consts.ACTION_NOTIFY.equals(action)) {
String notifyId = intent.getStringExtra(Consts.NOTIFICATION_ID);
if (Consts.DEBUG) {
Log.i(TAG, "notifyId: " + notifyId);
}
notify(context, notifyId);
} else if (Consts.ACTION_RESPONSE_CODE.equals(action)) {
long requestId = intent.getLongExtra(Consts.INAPP_REQUEST_ID, -1);
int responseCodeIndex = intent.getIntExtra(Consts.INAPP_RESPONSE_CODE,
ResponseCode.RESULT_ERROR.ordinal());
checkResponseCode(context, requestId, responseCodeIndex);
} else {
Log.w(TAG, "unexpected action: " + action);
}
}
使ACTION_PURCHASE_STATE_CHANGED与我的purchsedstatechanged调用文件BillingService中的操作相匹配
private void purchaseStateChanged(int startId, String signedData, String signature) {
ArrayList<Security.VerifiedPurchase> purchases;
DatabaseHandler db=new DatabaseHandler(this);
purchases = Security.verifyPurchase(signedData, signature);
if (purchases == null) {
return;
}
ArrayList<String> notifyList = new ArrayList<String>();
for (VerifiedPurchase vp : purchases) {
if (vp.notificationId != null) {
notifyList.add(vp.notificationId);
}
ResponseHandler.purchaseResponse(this, vp.purchaseState, vp.productId,
vp.orderId, vp.purchaseTime, vp.developerPayload);
db.addUser("com.example.app", "111", "1222");
Log.i("Usgdgfer",""+db.isUserPresent("com.example.app"));
}
if (!notifyList.isEmpty()) {
String[] notifyIds = notifyList.toArray(new String[notifyList.size()]);
confirmNotifications(startId, notifyIds);
}
}
答案 0 :(得分:0)
通常,在购买之前,必须将卡映射到Google电子钱包帐户。如果该卡无效,则在将该卡映射到您的Google帐户时会显示错误。
奇怪的是,该卡在购买时正在验证。即使这样,如果付款不正确,您也应该收到错误回复
BILLING_RESPONSE_RESULT_USER_CANCELED = 1; BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE = 3;
在IabResult中收到这些错误后,请检查是否正确处理了这些错误。确保只有在收到适当的回复时才能解锁您的应用。