Phiên bản ứng dụng này không được định cấu hình để thanh toán qua Google Play


269

Khi tôi cố chạy ứng dụng của mình bằng thanh toán trong ứng dụng, tôi gặp lỗi: "Phiên bản ứng dụng này không được định cấu hình để thanh toán qua Google Play. Hãy kiểm tra trung tâm trợ giúp để biết thêm thông tin".

Tôi đã có quyền thanh toán trong tệp Bản kê khai và tôi có .apk đã ký được tải lên dưới dạng bản nháp lên Google Play và tôi cũng đã cài đặt apk đã ký tương tự đó vào điện thoại của mình.

Bất kỳ trợ giúp về cách giải quyết vấn đề này?

Câu trả lời:


339

Lỗi này có thể được gây ra bởi một số lý do.

Dưới đây là danh sách các yêu cầu cho thử nghiệm Google IAB.

Điều kiện tiên quyết:

  1. AndroidManifest phải bao gồm quyền "com.android.veinating.BILLING" .
  2. APK được xây dựng trong chế độ phát hành .
  3. APK được với (các) chứng chỉ phát hành . (Quan trọng: với "Đăng nhập ứng dụng bằng Google Play", nó chỉ hoạt động nếu bạn tải xuống trực tiếp từ GooglePlayStore!)
  4. APK được tải lên kênh phân phối alpha / beta (trước đây - dưới dạng bản nháp) lên bảng điều khiển dành cho nhà phát triển ít nhất một lần. (mất một chút thời gian ~ 2h-24h ).
  5. Các sản phẩm IAB được xuất bản và trạng thái của chúng được đặt thành hoạt động .
  6. Tài khoản thử nghiệm được thêm vào trong bảng điều khiển dành cho nhà phát triển.

Yêu cầu kiểm tra:

  1. APK thử nghiệm có cùng phiên bản Mã như phiên bản được tải lên bảng điều khiển dành cho nhà phát triển.
  2. APK thử nghiệm được với cùng (các) chứng chỉ được tải lên dev.console.
  3. Tài khoản thử nghiệm (không phải nhà phát triển) - là tài khoản chính trên thiết bị. (Tài khoản chính có thể không cần thiết - theo nhận xét @MinosL )
  4. Tài khoản thử nghiệm được chọn tham gia dưới dạng thử nghiệm và được liên kết với phương thức thanh toán hợp lệ . ( @Kyone )

PS: Gỡ lỗi với chứng chỉ phát hành : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp cho liên kết)

PPS: Muốn lập danh sách này từ lâu rồi.

Thnx @zlgdev , @Kyone , @MinosL để cập nhật


5
Đừng quên đảm bảo tài khoản bạn đang sử dụng để kiểm tra IAB được chọn tham gia với tư cách người kiểm tra bằng cách sử dụng "URL chọn tham gia" được tạo sau khi bạn đã tải lên bản dựng; VÀ rằng nó được liên kết với một phương thức thanh toán hợp lệ .
Kyone

3
Không nên dễ dàng hơn để chỉ kiểm tra IAP? Hoặc để kiểm tra mọi thứ nói chung ..
Juan

1
cũng đáng chú ý; tài khoản thử nghiệm không nên được liên kết với tài khoản nhà phát triển (không nên có quyền truy cập để tải lên APK)
guness

2
cũng đáng chú ý; nếu "Chứng chỉ ký ứng dụng" được bật, thì chúng tôi không thể sử dụng APK cục bộ của mình để kiểm tra mua thực tế vì chúng tôi không thể ký với chứng chỉ ký. (mất 3 giờ để tìm hiểu)
guness

1
Tôi đã thử nghiệm thành công với 1) ứng dụng gỡ lỗi đã ký là 2) không phải là tài khoản chính trên thiết bị , vì vậy quy trình kiểm tra Google IAB dường như không nghiêm ngặt như đã nêu ở trên.
MinosL

194

Ahh tìm thấy giải pháp sau khi thử một vài giờ.

  1. Google mất một thời gian để xử lý các ứng dụng và cập nhật chúng lên máy chủ của họ, đối với tôi mất khoảng nửa ngày. Vì vậy, sau khi lưu apk dưới dạng bản nháp trên Google Play, bạn phải đợi vài giờ trước khi các sản phẩm trong ứng dụng sẽ phản hồi bình thường và cho phép mua hàng thường xuyên.
  2. Xuất và ký APK. APK không được chỉ định khi cố gắng mua hàng sẽ gặp lỗi.

71
Wow, điều này có nghiêm trọng không? Chỉ cần chạy vào cùng một vấn đề. Có phải tất cả mọi thứ Google yêu cầu tôi làm để kiểm tra thanh toán trong ứng dụng, nhưng vẫn nhận được thông báo lỗi lảng tránh tương tự. Tôi đoán tôi sẽ phải chờ xem. Nhưng Google có thực sự mong đợi các nhà phát triển của chúng tôi đợi hàng giờ mỗi lần chúng tôi cần cập nhật ứng dụng của mình để triển khai thanh toán trong ứng dụng không? Nó có vẻ khá không phù hợp với tôi, để nói rằng ít nhất.
Simon

6
Bạn có thể kiểm tra trong khi kết nối với Android Studio / đang chạy trong khi kết nối với trình gỡ lỗi không? Hay bạn cần cài đặt apk phát hành qua USB?
Alfie Hanssen

3
Có cách nào dễ dàng hơn để kiểm tra quy trình mua ngoài, Công cụ Android> Xuất dự án đã ký ... vv, sau đó sao chép thủ công APK qua thiết bị, Kiểm tra, .... lặp lại? Chắc chắn là tôi đang thiếu gì đó?
dây00

4
Nghiêm túc, tôi không thể sử dụng ứng dụng với chứng chỉ gỡ lỗi và kiểm tra Thanh toán trong ứng dụng?
TacB0sS

8
Lưu ý rằng bạn CÓ THỂ sử dụng các bản dựng gỡ lỗi, trực tiếp từ IDE của bạn khi bạn đang làm việc. Bạn chỉ cần thay đổi kho khóa gỡ lỗi thành một kho lưu trữ phù hợp với cửa hàng phát hành của bạn. Xem bài đăng này để biết thêm thông tin về cách: stackoverflow.com/questions/10886814/ trên
cottonBallPaws

137

Điều tương tự sẽ xảy ra nếu phiên bản đã xuất bản của bạn không giống với phiên bản bạn đang thử nghiệm trên điện thoại.

Ví dụ: phiên bản đã tải lên là android:versionCode="1"và phiên bản bạn đang thử nghiệm trên điện thoại của mình làandroid:versionCode="2"


3
Bạn có thể vui lòng cho tôi biết nếu phiên bản được tải lên android:versionCode="1"và điện thoại là android:versionCode="2"liều thì ok hoặc tôi phải thay đổi apk google play của mình?.
Youddh

1
Những gì bạn cần làm là giảm phiên bản cục bộ xuống "1" để phù hợp với phiên bản trực tiếp hiện tại, ít nhất là tạm thời để thử nghiệm.
Romain

2
Có vẻ như có 2 cách khắc phục phổ biến cho lỗi này tùy thuộc vào tình huống của bạn. Trong trường hợp của tôi, nó là cái này
Matt

Cảm ơn bạn, đây là vấn đề. Đã gỡ lỗi tốt với apk phát hành đã ký trên thiết bị đính kèm của tôi. Sau đó, thay đổi mã phiên bản và nó bắt đầu nhận được lỗi 1005. ôi!
Anna Billstrom

@Anna lưu ý rằng -1005 cũng là USER_CANCELLED nếu bạn sử dụng iabHelper
JacksOnF1re 20/03/2015

47

Bạn cần ký APK của bạn với chứng chỉ trực tiếp của bạn. Sau đó cài đặt nó vào thiết bị thử nghiệm của bạn. Sau đó, bạn có thể kiểm tra InAppBilling. Nếu bạn đang kiểm tra ứng dụng của mình bằng cách chạy trực tiếp qua nhật thực đến thiết bị (Ở chế độ gỡ lỗi) thì bạn sẽ gặp lỗi này.

Nếu bạn đang sử dụng android.test.purchasedlàm SKU, nó sẽ hoạt động hoàn toàn, nhưng bạn sẽ không có nhà phát triểnPayload trong phản hồi cuối cùng của mình.

Nếu bạn đang sử dụng bản nháp của riêng mình trong mục ứng dụng, bạn có thể kiểm tra tất cả các cách nhưng bạn sẽ bị tính phí và do đó sẽ phải tự hoàn trả lại sau đó.

Bạn không thể mua các mục có cùng tài khoản gmail mà bạn sử dụng cho bảng điều khiển phát triển google play.


1
+1 Chạy từ trình gỡ lỗi sử dụng chứng chỉ gỡ lỗi. Sau khi xuất ứng dụng và tạo khóa công khai mới (và cài đặt nó trong bảng điều khiển dành cho nhà phát triển), chỉ cần gửi email cho mình apk và cài đặt nó từ hộp thư đến gmail của bạn.
cdavidyoung

Nếu tôi muốn thử "android.test.purchasing" thì tôi sẽ thay đổi SKU trong cả mã của tôi và trong bảng điều khiển dành cho nhà phát triển?
Rocologo

26

Trong bảng điều khiển dành cho nhà phát triển:

Settings-> Account details-> License Testing-> Tài khoản Gmail có quyền truy cập thử nghiệm

và nhập vào đây tài khoản của bạn


Hoạt động như một lá bùa.
Jordan

17

Nếu bạn ở đây từ năm 2018, bạn cần tải xuống APK trực tiếp từ Play Store và cài đặt APK "có nguồn gốc". Có thể đó là do Cửa hàng Play của Google có tính năng "Đăng nhập ứng dụng bởi Google Play".


1
APK nào? Tôi đang sử dụng AIDL tôi vẫn cần phải làm điều đó?
Zhen Liu

@ZhenLiu Tôi đoán là không cần thiết
Luật Gimenez

Ngoài ra, ứng dụng không thể được cài đặt trên thiết bị bằng một phương tiện khác (ví dụ: Android Studio). Cài đặt / cập nhật từ Cửa hàng Play sẽ hoạt động, nhưng IAP sẽ không - bạn sẽ gặp lỗi OP.
JDune

Làm thế nào để chúng ta gỡ lỗi này?
Oliver Dixon

3

Điều này sẽ xảy ra nếu bạn sử dụng một phiên bản apk khác với phiên bản trong google play.


3

Hãy để tôi thêm những gì đã xảy ra với tôi, có thể giúp đỡ một số người.

Nó chủ yếu là do ký kết.

Vì tôi đã thêm các chi tiết ký trong cấu trúc Dự án, tôi đã nghĩ rằng mỗi khi tôi chạy, apk đã ký được mong đợi sẽ được cài đặt. Nhưng kiểu xây dựng 'gỡ lỗi' đã được chọn.

Dưới đây sửa chữa giải quyết vấn đề cho tôi.

  • Đã tạo apk có chữ ký của loại xây dựng 'phát hành'.
  • Tự cài đặt apk.

2

Trong trường hợp của tôi, tôi đã thấy cùng một thông báo do các chữ ký khác nhau của apk đã cài đặt và một apk được tải lên thị trường.


2

Trái với nhiều câu trả lời và nhận xét về SO và các trang web khác, bạn KHÔNG phải thực hiện các thử nghiệm sơ bộ với phiên bản alpha / beta của sản phẩm đã được tải xuống từ Google Play trên thiết bị thử nghiệm của bạn (quá trình xuất bản alpha / beta thường ăn hết nửa ngày). Bạn cũng không phải tải và tải lại apk phát hành đã ký từ studio nhà phát triển đến thiết bị thử nghiệm của bạn.

Bạn CÓ THỂ gỡ lỗi sơ bộ Google Play trong các dịch vụ thanh toán ứng dụng bằng ứng dụng gỡ lỗi được tải trực tiếp từ phòng phát triển của bạn đến thiết bị thử nghiệm của bạn thông qua ADB. Nếu bạn gặp phải lỗi ngăn chặn điều này, có thể bạn đã làm sai điều gì đó trong mã của mình. Đặc biệt chú ý đến CASE của SKU (id sản phẩm) và định dạng của chúng (ví dụ: nếu bạn tải APK của mình dưới dạng com.mydomain.my_product_id, hãy chắc chắn rằng bạn đã cố gắng mua nó theo cách này - cung cấp cùng một trường hợp và tên miền) . Ngoài ra, đặc biệt chú ý đến ItemType của bạn - đây phải là "inapp" hoặc "subs" cho quản lý / không được quản lý trong mua hàng hoặc đăng ký ứng dụng, tương ứng.

Theo đề xuất của Chirag Patel, miễn là bạn đã thiết lập đúng mã thanh toán của mình, hãy thực hiện tất cả thử nghiệm bằng cách sử dụng android.test.purchued Sku (ID sản phẩm) trong các thử nghiệm sơ bộ của bạn. Kiểm tra ID này trong suốt các hoạt động thanh toán của bạn để vượt qua kiểm tra chữ ký, mã thông báo và tải trọng, vì dữ liệu này không được cung cấp bởi hệ thống kiểm tra của Google. Ngoài ra, cung cấp cho một trong các sản phẩm thử nghiệm của bạn ID này để kiểm tra việc mua, mở khóa / tải và trình bày tất cả các cách thông qua lược đồ của bạn. Để XÓA việc mua hàng, chỉ cần tiêu thụ nó, chuyển cùng Sku VÀ một chuỗi mã thông báo được định dạng theo cách này - không có trường nào khác có liên quan:

    "inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";

Khi bạn đã hoàn thành giai đoạn thử nghiệm này, hãy chuyển sang thử nghiệm bán trực tiếp với sản phẩm alpha / beta của bạn. Tạo một nhóm Google (về cơ bản là danh sách gửi thư), thêm email người dùng thử nghiệm của bạn vào đó và thêm / mời nhóm này để kiểm tra thiết bị của bạn trong giai đoạn này (được thực hiện tại phần "APK" trong danh sách nhà phát triển Google của ứng dụng của bạn). Các giao dịch mua sẽ được mô phỏng nhưng không thực sự bị tính phí - tuy nhiên để xóa và kiểm tra lại các giao dịch mua, Google cho biết bạn phải hoàn trả chúng từ ví Google của mình. ĐÂY là giai đoạn thử nghiệm duy nhất đòi hỏi quá trình sử dụng tải alpha / beta và người dùng thử nghiệm tốn nhiều thời gian.



1

Có cùng một vấn đề, và nó đã không được giải quyết trước khi tôi đọc bài đăng từ DZDomi. Điều bất ngờ là có một cài đặt trong Bảng điều khiển dành cho nhà phát triển của Google mà bạn cần bật. Trong phần "Mua ứng dụng", có một dòng cho sản phẩm của bạn và ở phía bên phải có trạng thái cho sản phẩm đó. Nó nên HOẠT ĐỘNG!


0

vấn đề của tôi là tôi đã cố kiểm tra nó với debug.keystore, ý tôi là chạy nó qua nhật thực. Tôi đã xuất nó với kho khóa mà tôi đã xuất bản ở chế độ alpha (nó phải được xuất bản trước khi bạn có thể kiểm tra nó). điện thoại của tôi và hơn tôi có thể kiểm tra nó bình thường.


0

Vấn đề cũng xảy ra, khi bạn đã thêm một giao dịch mua trong ứng dụng sau khi bạn tải lên apk, nhưng bạn chưa xuất bản ứng dụng trong cửa hàng play (alpha, beta và sản xuất).

Về cơ bản, điều đó có nghĩa là bạn phải thêm giao dịch mua trong ứng dụng SAU KHI bạn đã xuất bản apk trong Cửa hàng Play (alpha, beta và sản xuất). Nếu không, bạn sẽ không thể mua hoặc truy vấn cho giao dịch mua trong ứng dụng.


0

Một lý do khác không được đề cập ở đây là bạn cần phải thử nghiệm trên một thiết bị thực. Với trình giả lập trở nên thực sự tốt, đó là một sai lầm dễ mắc phải.


0

Gần đây, google đã thực hiện thay đổi trên hệ thống của họ và vì bạn đã tải ít nhất một APK lên bảng điều khiển của mình, bạn có thể kiểm tra các yêu cầu trong ứng dụng với ứng dụng của mình với bất kỳ mã / số phiên bản nào.

LINK tham khảo chéo

Cấu hình gradleđể ký bản dựng gỡ lỗi của bạn để gỡ lỗi.

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            ...
        }
    }
}

0

GIẢI PHÁP

Chỉ cần chờ một lúc sau khi tải lên ứng dụng của bạn trên cửa hàng play vì google mất một chút thời gian để cập nhật các phiên bản ứng dụng. Nó sẽ hoạt động!


0

Tôi gặp vấn đề tương tự ở moto c2 + trong trường hợp của tôi đó là sự cố thiết bị một khi tôi khởi động lại thì nó sẽ chạy hoàn hảo ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.