엑솔라 솔루션 기반 인벤토리에 아이템 추가
엑솔라는 인게임 스토어 제품 기반 플레이어 인벤토리(플레이어 인벤토리) 구현용 솔루션을 제공합니다. 이 솔루션은 모든 구매품 및 사용자 프리미엄 보상을 플랫폼 간에 동기화할 수 있게 해 줍니다.
타사 결제 UI(예: Google Play 인앱 구매)를 사용하여 구매한 아이템을 플레이어 인벤토리에 추가할 수 있습니다.
사용자에게 아이템 부여하기 API 서버 쿼리가 호출되면 인벤토리에 아이템이 추가됩니다. 애플리케이션 백 엔드용으로 Firebase를 사용하고 있다면 기본 제공 함수를 사용하세요.
클라우드 기능을 Firebase 프로젝트에 추가
- Firebase 프로젝트를 초기화.
- 인벤토리에 아이템을 추가하기 위한 기능을 가져오고 구성:
<MerchantID>
- 관리자 페이지에서 확인할 수 있는 판매자 ID:- 프로젝트 설정 > 웹훅 섹션
- 회사 설정 > 회사 섹션
- 관리자 페이지 페이지의 브라우저 주소 표시줄에 있는 URL. 이 URL의 형식:
https://publisher.xsolla.com/판매자 ID/관리자 페이지 섹션
<ProjectID>
- 관리자 페이지에서 확인할 수 있는 프로젝트 ID:- 프로젝트 이름 옆에서 확인
- 프로젝트 설정 > 프로젝트 ID 섹션에서 확인
<ApiKey>
- 회사 설정 > API 키 또는 프로젝트 설정 > API 키 섹션의 관리자 페이지에서 확인할 수 있는 API key
API 키 작업에 대한 자세한 정보는 API 참조를 확인하세요.
주요 권장 사항:
- 본인의 공간에 생성된 API 키를 저장합니다.. 생성된 API 키는 관리자 페이지에서 한 번만 볼 수 있습니다.
- API 키를 비밀로 유지해야 합니다. 이러한 API 키는 개인 계정과 관리자 페이지의 프로젝트에 대한 액세스를 제공합니다.
- API 키는 서버에 저장해야 하며 바이너리나 프론트엔드에는 저장해선 안 됩니다.
인벤토리에 아이템 추가 기능 코드:
- js
const merchantId = "<MerchantID>";
const projectId = "<ProjectID>";
const apiKey = "<ApiKey>";
exports.redeem = functions.https.onRequest((request, response) => {
const sku = request.body.sku;
const quantity = request.body.quantity;
const userId = request.body.user_id;
const authHeader = Buffer.from(`${merchantId}:${apiKey}`).toString("base64");
const postData = JSON.stringify(
[{
"comment": "Purchased by Google Pay",
"platform": "xsolla",
"user": {
"id": userId,
},
"items": [{
"sku": sku,
"quantity": quantity,
}],
}]
);
const options = {
hostname: "store.xsolla.com",
port: 443,
path: `/api/v2/project/${projectId}/inventory/reward`,
method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": postData.length,
"Authorization": `Basic ${authHeader}`,
},
};
const req = https.request(options, (res) => {
if (res.statusCode == 200) {
response.status(200).send();
return;
}
if (res.statusCode == 404) {
response.status(404).send();
return;
}
if (res.statusCode == 401) {
response.status(401).send();
return;
}
response.status(400).send();
res.on("data", (d) => {
process.stdout.write(d);
});
});
req.on("error", (e) => {
response.status(500).send(e.message);
});
req.write(postData);
req.end();
});
- 이 예시를 따라 프로덕션 환경에 함수를 배포합니다.
애플리케이션에서 함수 호출
인벤토리에 아이템을 추가하려면 논리를 애플리케이션의 함수 호출에 추가한 다음 redeem
을 함수 이름으로 지정하고 sku
, quantity
, user_id
매개 변수를 이에 전달합니다.
일부 청구 인터페이스(예: Google Play 인앱 구매)는 클라이언트 측에서 인벤토리에 아이템 추가용 논리 개시해야 합니다. 이 경우 클라이언트 측 메서드를 구현하여 redeem
함수를 호출하세요.
Android용 구현 예시로 Google Play 인앱 구매를 인벤토리에 추가할 수 있게 하는 xsolla-googleplay-sdk 모듈을 사용할 수 있습니다.
프로젝트 예시 적용 방법:
- Android Studio를 시작합니다.
- xsolla-googleplay-sdk 모듈을 프로젝트에 추가합니다.
- 라이브러리를 초기화합니다. 이를 수행하려면 다음 줄을 Android 프로젝트 소스 코드에 추가해야 합니다. 단, 여기서 조건은
<your-deployment-host>
가 클라우드 함수 URL의 호스트이어야 합니다(예:https://us-central1-xsolla-sdk-demo.cloudfunctions.net
):
- kotlin
InventoryAdmin.init("<your-deployment-host>")
프로덕션의 함수를 실행하면 클라우드 함수 URL이 Firebase 명령줄에 표시됩니다. 또한, 함수 URL을
InventoryAdmin.grantItemToUser (sku, userId, quantity, callback)
메서드 호출을 애플리케이션 논리에 따라 구현합니다. 콜백은 인벤토리에 아이템이 성공적으로 추가되기 시작하면 데이터를 반환합니다.
이 기사가 도움이 되었나요?
이 페이지 평가
답하기 원하지 않습니다
의견을 보내 주셔서 감사드립니다!
오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.