반응형

안녕하세요.

오늘은 저를 일주일간 별거 아닌 것이 괴롭힌 원스토어 IAP 관련 글을 작성하고자 합니다.


흠 다른 것들과 비교해도 어렵진 않습니다. 

단 ! 몇가지만 꼭~~~ 주의 하신다면요.


자 그럼 시작합니다.


1. 프로젝트 준비

프로젝트는 Android 프로젝트로 준비해주세요.


!!! 만약 구글플레이에 서비스를 하셨다면 정보를 끌어오면되기에 조금 더 편하실 수 있습니다.


2. 필요한 파일 받기

https://github.com/ONE-store/inapp-sdk/wiki/IAP-Download


여기를 가시면 2가지의 파일을 받아 주세요.




3. 파일 풀기 및 유니티 프로젝트에 넣기

3-1. 파일은 풀어서 폴더를 잘 두세요.


3-2. 폴더를 뒤져서 보시면 아래 3개의 파일이 있습니다.

이녀석들을 아래 경로에 넣어주세요!


기본 경로: Assets\Plugins\Android

AndroidManifest

iap_plugin_v16.04.00_20180112

unity_adaptor_v1.1_20180112


3-3. 스크립트

스크립트는 모두다 자신의 스크립트 폴더에 넣어주세요

보통 경로: Assets\Script OR Assets\Scripts

IapSample

VerifyReceipt

Error

Response

여기까지 기초 작업은 완료 되었습니다.


4. 프로젝트 스크립트 세팅

4-1. Hierarchy 

여기 별표 100개 해주세요! 저도 여기서 별거아닌걸로 고생을 많이했습니다.


자 우리는 IapSample.cs만 수정합니다.


여기서 IapSample을 그대로 사용하신다면 "" Hierarchy\IapSamle """ 이라고 동일하게 스크립트 파일과 같은 이름으로 해줍니다. 

이거 실수하면 결과가 안넘어 옵니다.



만약! 당신이 다른 이름으로 변경한다면 그것으로 잘 세팅해야합니다.


4-2. IapSample 작업

1) 기본 설정

iapRequestAdapter = new AndroidJavaObject("com.onestore.iap.unity.RequestAdapter""IapSample"currentActivityfalse); 


여기서는 4-1에서 말한 스크립트 파일이름이 수정이 안되었다면 수정할게 없습니다.

만약 수정하셨다면 "IapSample" 부분을 자신이 수정한 곳으로 수정해 주세요


2) ProductIds

등록한 상품을 모두 배열로 입력하세요.

string[] productIds = {  } 

상품 개수만큼 입력하시면 됩니다.  

상품 ID는 

a) 원스토어 https://dev.onestore.co.kr/devpoc/index.omp


b) Apps > 자신 등록한 정보 (없다면 등록하고오세요.) > InApp정보 > 숫자로 된 ID가 있습니다.





3) AppID 세팅

위 스크린 샷 을 보면 OA000000처럼 생긴 이름이 있다.

이녀석이 바로 AppID 입니다. 


소스에서 OA로 시작하는 부분을 모두 저녀석으로 교체해주세요.

하나도 빠짐없이......


4) 결제 요청 (RequestPaymenet) 

아래 부분을 구매 버튼에 연결해서 사용 하세요. 


여기서 꿀팁! AppiD, ProductID, Product Name 은 꼭! 정확한 값을 넣어주세요.

AppID와 ProductID는 자신껄 넣으시구요 Name은 상점 상품 이름과 동일하게 넣어주세요

전 실제로 샘플로 사용했다가 반려 맞았습니다.


public void RequestPaymenet()
    {
        // ---------------------------------
        // 함수 parameter 정리
        // ---------------------------------
        // (0) 메소드이름 : 구매요청
        // ---------------------------------
        // (1) appId
        // (2) productId
        // (3) proudtName
        // (4) tId
        // (5) bpInfo
        // (6) gameuserId
        // (7) promotionApplicable
        // ----------------------------------
        iapRequestAdapter.Call ("requestPayment""OA000000""00000000""보석""TID_0""BPINFO_0123" , "",true);
 


5) 결과물 처리(PaymentResponse)

결제가 완료되었으면 보상을 지급해야죠!

public void PaymentResponse(string response
    {
        Debug.Log ("--------------------------------------------------------");
        Debug.Log ("[UNITY] PaymentResponse >>> " + response);
        Debug.Log ("--------------------------------------------------------");

        // Parsing Json string to "Reponse" class
        Response data = JsonUtility.FromJson<Response> (response);
        Debug.Log (">>> " + data.ToString());
        Debug.Log ("--------------------------------------------------------");

        if("0000" == data.result.code) // 여기는 꼭필요해요 (0000을 받아야 성공한것이기에)
        {
            switch(data.result.product[0].id) (if sWitch 등 편하신걸로 ID 구분해서 지급)
            {
                지급 내용 작성하세요!!!!!!!!
            }
        }



6) 의문이 드는 부분

a) VerifyReceipt여기는 어찌해야하나요?

> 영수증 검증 부분같습니다. 우선은 전 비전문가이다보니 결론부터 말씀드리면 

아무것도 건들지 않아도 됩니다.

>혹시라도 영수증관련 무언가 하신다면 내용을 별도로 확인해보세요



5. 테스트

검증을 요청하려면 인앱상품의 테스트 여부가 N -> Y로 변경되어야 합니다.

그래야 검수를 진행할 수 있습니다.


5-1) 스크립트 약간 수정하기

앵 위에 끝났는데 무슨 말이냐?


sample 윗부분을 보면 이렇게 2줄이 있습니다.

iapRequestAdapter = new AndroidJavaObject("com.onestore.iap.unity.RequestAdapter""IapSample"currentActivityfalse); //Release
//iapRequestAdapter = new AndroidJavaObject("com.onestore.iap.unity.RequestAdapter", "IapSample", currentActivity, true); //Debug


여기서 테스트를 진행 하실 때에는 꼭!! 아래 Debug 주석처리된 부분을 풀고 Release를 주석처리 후 테스트하세요.


5-2) 구매 확인

만드신 앱에서 구매 및 상품 지급 확인

Onestore 상품 구매 테스트가 Y로 변경되었나 확인


그럼 끝!!


6. 완전 번외

1. 적용했더니 아이콘이 안드로이드 아이콘으로 나와요!!!!

> Plugins/Android/res/drawable 폴더에 앱 아이콘 이름을 app_icon 으로 변경해서 넣으세요,

> Onestore세팅에서 추가한 AndroidManifest 에 이걸 추가하세요

  <application android:allow<wbr />Backup="true" android:label="@<wbr />string/app_nameandroid:icon="@drawable/app_<wbr />icon" 
        android:supportsRtl="t<wbr />rue">


이렇게만 하면 통과했습니다.



반응형

'개발이야기 > 외부 기능 연결' 카테고리의 다른 글

Unpacking(난독화)  (0) 2018.07.12
Admob 베너 광고 끄기  (0) 2018.04.04
Google Play Game Center 연동  (0) 2018.04.03
Advertisements, ShowResult (Version=1.0.0) 오류  (0) 2018.03.07
ZplayerPrefs 사용  (0) 2018.02.05

+ Recent posts