본문으로 건너뛰기

안드로이드 영수증 검증

안드로이드 인앱결제에 따른 영수증 정보를 검증 합니다.

호출 정보

// Unity IAP를 사용하는 경우
IAP.Android(string receipt, PlayNANOODelegate callback) {}
IAP.Android(string receipt, bool duplicateAllow, PlayNANOODelegate callback) {}


// Unity IAP를 사용하지 않는 경우
IAP.Android(string receipt, string skuDetails, string signature, PlayNANOODelegate callback) {}
IAP.Android(string receipt, string skuDetails, string signature, bool duplicateAllow, PlayNANOODelegate callback) {}

호출 상세 정보

파라미터설명타입
receipt테이블 코드string
skuDetails안드로이드 상품 정보string
signature안드로이드 Signaturestring
duplicateAllow영수증 중복 검증 허용 여부boolean
callback통신 결과PlayNANOODelegate
소스코드
using PlayNANOO;

public class PlayNANOOExample : MonoBehaviour
{
Plugin plugin;

void Awake()
{
plugin = Plugin.GetInstance();
}

// Unity IAP를 사용하는 경우
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
plugin.IAP.Android(args.purchasedProduct.receipt, (status, errorMessage, jsonString, values) => {
if (status.Equals(Configure.PN_API_STATE_SUCCESS))
{
Debug.Log(values["UserID"]);
Debug.Log(values["PackageName"]);
Debug.Log(values["OrderID"]);
Debug.Log(values["ProductID"]);
Debug.Log(values["Currency"]);
Debug.Log(values["Quantity"]);
Debug.Log(values["Price"]);
}
else
{
Debug.Log("Fail");
}
});
}

// Unity IAP를 사용하지 않는 경우
public void AndroidValidate()
{
string receipt = "string";
string skuDetails = "string";
string signature = "string";
plugin.IAP.Android(receipt, skuDetails, signature, (status, errorMessage, jsonString, values) => {
if (status.Equals(Configure.PN_API_STATE_SUCCESS))
{
Debug.Log(values["UserID"]);
Debug.Log(values["PackageName"]);
Debug.Log(values["OrderID"]);
Debug.Log(values["ProductID"]);
Debug.Log(values["Currency"]);
Debug.Log(values["Quantity"]);
Debug.Log(values["Price"]);
}
else
{
Debug.Log("Fail");
}
});
}
}

통신 결과

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"UserID" : "String",
"PackageName" : "String",
"OrderID" : "String",
"ProductID" : "String",
"Currency" : "String",
"Quantity" : "Integer",
"Price" : "String"
}

결과 상세 정보

데이터키설명타입
UserID사용자 식별 아이디String
PackageName앱 패키지명String
ProductID결제 상품 아이디String
OrderID주문 아이디String
Currency결제 화폐 코드String
Quantity구매 수량integer
Price결제 상품 금액integer

에러 정보

영수증 검증에 실패한 경우 ErrorCode : 20000
ErrorMessage : ValidationFailException

어플리케이션 패키지명이 일치하지 않는 경우 ErrorCode : 20002
ErrorMessage : NotMatchPackageNameException

이미 사용된 영수증인 경우 ErrorCode : 20005
ErrorMessage : ExistsReceiptException