2014-09-06 2 views
0

나는 인앱 결제 구매는 다음과 같이 처리 한 :인앱 결제 이상한 응답 코드

mHelper.launchPurchaseFlow(
    activity, itemID, 12345, mPurchaseFinishedListener, "myrandomtoken" 
); 

// snip snip 

IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = 
new IabHelper.OnIabPurchaseFinishedListener() { 
    @Override 
    public void onIabPurchaseFinished(IabResult result, Purchase purchase) { 
     int purchaseResult = result.getResponse(); 
    } 
} 

구글이 페이지에서 서버 응답 코드를 나열 : http://developer.android.com/google/play/billing/billing_reference.html하지만 문제는 내가 대신 이상한 코드를 얻고있다 -1이 아닌 -1005 (사용자가 취소됨)와 같은 응답이고, 응답이 있어야 할 때 앱이 올바르게 서명되지 않은 경우 (의도적으로) 동일한 응답입니다. 5. Google Play에서 오류가있는 작은 대화 상자를 표시 한 다음 사용자가 종료 할 때 대화 상자 Google Play에서 응답 -1005를 반환합니다.

그럼 내 질문은/http://developer.android.com/google/play/billing/billing_reference.html에 나열된 응답 코드는 어떻게 얻을 수 있습니까?

답변

0

문제는 Google의 IabHelper.java (실수로든 아니든)이 서버에서 어떤 이유로 든 응답을 취소 한 것으로 반환했습니다. IabHelper.java에서 그냥 교체 :

result = new IabResult(IABHELPER_USER_CANCELLED, "User canceled."); 

result = new IabResult(responseCode, "Actual reason description."); 

로 이제 IabHelper는 구매가 성공하지 못한 실제 이유를 반환합니다.