여러 계정으로 인앱 구매
인앱 구매 / 구독에 문제가 있습니다 .
기기에 여러 계정이있는 경우 두 번째 계정으로 구매 한 항목을 가져올 수 없습니다. Google Play 웹 인터페이스에서 앱을 설치하여 일시적으로이 문제를 해결할 수 있지만 잠시 후 구매 항목이 쿼리에 표시되지 않아 사용자가 다시 설치해야합니다.
이 샘플 에서 IabHelper 클래스를 사용하고 있습니다 .
일부 Google 검색을 수행하면서이 버그가 오랫동안 존재한다는 것을 발견했지만 불행히도 오류가 IabHelper 클래스에 있는지 아니면 Google 측에 있는지 확인할 수 없었습니다.
나는 Google에 관심을 끌고 싶습니다. 그래서 그들은 IabHelper 클래스 또는 Play 서비스에서 이에 대한 적절한 수정을 제공하거나 처리 방법에 대한 정보를 제공합니다.
나는 (작성 당시) 900.000 활성 사용자 설치로 앱에서 코드를 사용하고 있으며 이로 인해 상당히 많은 환불을 트리거해야합니다.
내가 놓친이 문제에 대한 수정 사항이 있으면 알려주십시오.
편집 : 때로는 전화에 계정이 하나만 있어도 구매를 검색하는 것이 전혀 불가능합니다.
이 문제를 해결하는 데 일방 통행이없는 것 같지만 시도해 보겠습니다.
사용자가 앱을 처음 설치할 때 기본 이메일 또는 기기의 모든 계정을받습니다.
사용자에게 향후 결제를 위해 어떤 이메일을 사용할 것인지 또는 어떤 계정이 Google Play에서 활성화되어 있는지 묻습니다.
이 코드를 사용하여 계정을 얻을 수 있습니다.
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+ Account[] accounts = AccountManager.get(context).getAccounts(); for (Account account : accounts) { if (emailPattern.matcher(account.name).matches()) { String possibleEmail = account.name; ... } }허가를 요청하는 것을 잊지 마세요
<uses-permission android:name="android.permission.GET_ACCOUNTS" />사용자가 이메일을 선택한 후 이메일을 통해이 이메일 주소를 확인하는 링크를 보낼 수 있습니다.
특정 이메일로 모든 지불을 유도하십시오.
방법 2
새로운 'Gmail을 사용하여 송금 및 수취'를 사용하세요.
이메일 인 텐트를 생성하고 특정 데이터를 이메일 인 텐트로 전송하고 결제합니다.
성공하면 사용자 이메일로 코드를 보냅니다.
코드를 사용하여 구매 한 모든 것을 활성화하십시오.
방법 3
Google Play 대신 인앱 구매에 다른 결제 라이브러리 또는 게이트웨이를 사용하세요.
이것은 유사한 질문이며 답변 중 하나에서 언급했듯이 로그인 메커니즘을 도입하고 계정에서 구매 한 항목을 서버에 저장하거나 장치에 로컬로 암호화 된 파일 또는 유사한 파일로 저장해야 할 수 있습니다.
몇 달 후에 같은 문제가 발생했습니다. 몇 시간 동안 해결책을 찾고 내가 이와 같은 문제를 해결 한 후
OAuth 2.0을 사용할 수 있습니다.
그러나 백엔드에서도 관리해야합니다. 저는 백엔드 개발자가 아니므로 백엔드에서 정확히 어떻게 작동하는지 몰랐지만 앱 측에서는 이와 같은 작업을 수행했습니다.
서비스 측에서 인증을 허용하는 첫 번째 Google 계정을 사용할 수 있습니다. OAuth 2.0은 개발자가 사용자가 애플리케이션에 액세스 할 수 있도록 단순화하고 개발자에게 쉬운 방법을 제공하는 도구입니다. OAuthHmacSigner 클래스는 인증을 관리합니다.
signer = new OAuthHmacSigner();
signer.clientSharedSecret = Constants.CONSUMER_SECRET;
그런 다음 Android 활동은 다음 코드를 사용하여 OAuth 흐름을 시작합니다.
launchOauth.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent().setClass(v.getContext(),
PrepareRequestTokenActivity.class));
}
});
OAuth 2.0 액세스 토큰을 얻으려면 다음을 호출하기 만하면됩니다.
AccountManager.getAuthToken()
나는 이것이 도움이되기를 바랍니다 :)
I have two accounts, but one does not work. What I did is I went into android's settings, and then went into account preferences. I changed my main account from the one that does not work to the working one. Then I assigned the new account to be the main one for all of my applications, including google play. That worked for me. Sometimes, if it does not work for some reason, you can also go online and access the Google Play store from the internet.
Try to get dup...duplicate dot with file signature ending in .apk or .xcode
I'm not sure if this is the answer you're searching for, but perhaps setting up a shared Google Play Family Library would suffice. It works for up to 5 users sharing the same purchases (app, music, movies, etc), if desired.
(See: https://support.google.com/googleplay/answer/7007852?hl=en)
참고URL : https://stackoverflow.com/questions/28811490/in-app-purchases-with-multiple-accounts
'IT TIP' 카테고리의 다른 글
| Git 클론-저장소를 찾을 수 없음 (0) | 2020.11.28 |
|---|---|
| 크롬 탭에서 X 버튼을 제거하는 방법이 있습니까? (0) | 2020.11.28 |
| 왜 C에서 수학 라이브러리를 연결해야합니까? (0) | 2020.11.28 |
| PHP에서 유용한 오류 메시지를 어떻게 얻을 수 있습니까? (0) | 2020.11.28 |
| Ember js-다른 테이블을 업데이트 한 후 Hasmany 관계가 끊어짐 (0) | 2020.11.28 |