2013-08-25 27 views
5

Tôi đang triển khai thanh toán đăng ký bằng API thanh toán phiên bản 3. Sau khi hộp thoại thanh toán đã đóng cửa (thanh toán thành công), kiểm soát được trả lại để hoạt động của tôiTrong API thanh toán ứng dụng v3 INAPP_PURCHASE_DATA không có trong gói khi onActivityResult được gọi là

gọi method

 String payload = UUID.randomUUID().toString(); 
     bundle = mService.getBuyIntent(3, getPackageName(), mProduct, "subs", payload); 

     int responseCode = bundle.getInt("RESPONSE_CODE"); 
     if (responseCode == 0) { 
      PendingIntent pendingIntent = bundle.getParcelable("BUY_INTENT"); 
      startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0)); 
     } else if (responseCode == 1) { 
       mErrorMessage.setText(getResources().getString(R.string.purchase_cancelled)); 
       mErrorMessage.setVisibility(View.VISIBLE); 
     } else if (responseCode == 7) { 
       mErrorMessage.setText(getResources().getString(R.string.payment_twice)); 
       mErrorMessage.setVisibility(View.VISIBLE); 
     } else { 
       mErrorMessage.setText(getResources().getString(R.string.payment_general_error)); 
       mErrorMessage.setVisibility(View.VISIBLE); 
     } 

hoạt động của tôi

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == Activity.RESULT_OK) { 
      // Null 
      String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA" 
     } 
    } 

Vấn đề là chuỗi purchaseData là null. Điều này có thể là do tôi đã mua đăng ký này (một triệu lần khi thử nghiệm) - và rằng tôi nên đã kiểm tra với getPurchases() trước tiên.

Được biết là mua hàng "đi qua - dường như thành công", nếu người dùng cố gắng thanh toán khi người đó là 1) người đăng ký hiện tại hoặc 2) trong khoảng thời gian sau khi hủy nhưng trước khi dịch vụ hết hạn?

+0

đăng phương thức gọi –

+0

Tôi đã đăng phương thức gọi số –

+2

tôi có cùng sự cố với android.test.purchased .... cố gắng triển khai sản phẩm thực và thử nghiệm bằng cách sử dụng sandbox .... tôi nghĩ với android. test.purchased you always get null .. –

Trả lời

4

Tôi đã gặp vấn đề tương tự và tôi phát hiện ra rằng tôi đang sử dụng ITEM_TYPE_SUBS = "subs" thay vì ITEM_TYPE_INAPP = "inapp".

Khi tôi đặt đúng thông số vào, nó hoạt động như mong đợi.

+0

này không giải quyết các câu hỏi ở tất cả, OP chỉ định String payload = UUID.randomUUID(). ToString(); bundle = mService.getBuyIntent (3, getPackageName(), mProduct, "subs", payload); – desgraci

+0

Rất thú vị. "inapp" đã cứu tôi. Cảm ơn @Repminister – Nizam

Các vấn đề liên quan