본문으로 건너뛰기
버전: 5.11.4

쿠폰 사용하고 아이템 저장하기

1. 쿠폰 사용 및 데이터 저장하기 함수 작성

사전 준비에서 작성한 BackendCoupon.cs의 Coupon 함수에 내용을 추가합니다.

BackendCoupon.cs

수정 전

    public void CouponUse(string couponNumber) {
// Step 3. 쿠폰 사용하고 아이템 저장하기
}

수정 후

    public void CouponUse(string couponNumber) {
var bro = Backend.Coupon.UseCoupon(couponNumber);

if(bro.IsSuccess() == false) {
Debug.LogError("쿠폰 사용 중 에러가 발생했습니다. : " + bro);
return;
}

Debug.Log("쿠폰 사용에 성공했습니다. : " + bro);

if(BackendGameData.userData == null) {
BackendGameData.Instance.GameDataGet();
}

if(BackendGameData.userData == null) {
BackendGameData.Instance.GameDataInsert();
}

if(BackendGameData.userData == null) {
Debug.LogError("userData가 존재하지 않습니다.");
return;
}

foreach(LitJson.JsonData item in bro.GetFlattenJSON()["itemObject"]) {
if(item["item"].ContainsKey("itemType")) {
int itemId = int.Parse(item["item"]["itemId"].ToString());
string itemType = item["item"]["itemType"].ToString();
string itemName = item["item"]["itemName"].ToString();
int itemCount = int.Parse(item["itemCount"].ToString());

if(BackendGameData.userData.inventory.ContainsKey(itemName)) {
BackendGameData.userData.inventory[itemName] += itemCount;
} else {
BackendGameData.userData.inventory.Add(itemName, itemCount);
}
} else {
Debug.LogError("지원하지 않는 item입니다.");
}
}

BackendGameData.Instance.GameDataUpdate();
}

2. 뒤끝 콘솔에서 쿠폰코드 복사

뒤끝 콘솔 뒤끝 베이스 > 쿠폰 관리 에서 생성한 쿠폰을 클릭하여 미사용된 쿠폰의 코드를 복사합니다.

3. BackendManager.cs에 함수 호출 추가

해당 함수가 호출되기 위해서는 게임 실행 시 자동으로 호출되는 BackendManager에서 호출해야 합니다.
뒤끝 초기화와 뒤끝 로그인이 이루어진 후에 함수를 호출할 수 있도록 추가합니다.

2번에서 복사한 쿠폰 코드는 CouponUse의 인자값으로 값을 붙여넣습니다.

예시 : "쿠폰 코드" -> "f9ffeed2c882bc1418"

BackendManager.cs

수정 전

    async void Test() {
await Task.Run(() => {
BackendLogin.Instance.CustomLogin("user1", "1234");

// 쿠폰 사용 로직 추가

Debug.Log("테스트를 종료합니다.");
});
}

수정 후

    async void Test() {
await Task.Run(() => {
BackendLogin.Instance.CustomLogin("user1", "1234");

// [변경 필요] 쿠폰 코드를 뒤끝 콘솔 > 쿠폰 관리 > 테스트 쿠폰에서 생성된 쿠폰코드 값으로 변경해주세요.
BackendCoupon.Instance.CouponUse("쿠폰 코드"); // 예시 : "쿠폰 코드" -> "f9ffeed2c882bc1418"

Debug.Log("테스트를 종료합니다.");
});
}

4. 유니티에서 테스트

스크립트를 수정한 후, 유니티 디버깅을 실행시키고 유니티의 Console 로그를 확인합니다.

이때 로그에서 '게임 정보 데이터 수정에 성공했습니다. : statusCode : 204'가 표시되어야 함수 호출에 성공한 것입니다.
해당 로그 외에 statusCode : 400, 404, 409 에러등이 발생할 경우에는 UseCoupon에러케이스를 통해 어떠한 에러로 문제가 발생하였는지 확인할 수 있습니다.

5. 콘솔에서 쿠폰 사용 여부 확인

쿠폰 사용이 성공된 경우에는 해당 쿠폰코드의 사용여부가 사용으로 변경됩니다.

6. 게임 정보관리에서 데이터 변경 여부 확인

예제에서는 쿠폰 사용 후에 해당 지급된 아이템에 대한 데이터 저장도 실시하기에 데이터가 변경이 됩니다.

뒤끝베이스 > 게임 정보 관리 에서 해당 테이블을 눌러, 데이터가 변경되었는지 확인합니다.