안녕하세요
이번에 sdk 업데이트로 인해서 결제가 “특정”실패하는 경우에도 orderId를 내린다고 했는데, 코드상에서 상황을 여쭤보게 됩니다.
일단 프론트 sdk쪽은 다음과 같은데,
try {
const result = await IAP.createOneTimePurchaseOrder({
productId,
});
alert("[결제] 호출 결과:" + result);
}catch (err) {
alert("결제 실패. 다시 시도해주세요." + err);
sendMessageRef.current("MessageManager", "ReceiveMessage", JSON.stringify({ name: "AckPurchase", data: { error: err } }));
}
일단 createOneTimePurchaseOrder가 리턴하는 다음에서는 에러코드 부분이 없는것 같고,
interface IapCreateOneTimePurchaseOrderResult {
orderId: string;
displayName: string;
displayAmount: string;
amount: number;
currency: string;
fraction: number;
miniAppIconUrl: string | null;
}
메뉴얼에 명시된 err 코드 및 실패시 orderId 내리는 부분은 catch부분에서 얻어와야하는것인가요,
아니면 IapCreateOneTimePurchaseOrderResult 여기에 별도로 추가되는게 있는것인가요?
제가 일부러 테스트를 실패해보려해도, 실패케이스를 만들기가 어려운 상황이고,
catch쪽의 err는 alert으로 찍어보면 단순히 “사용자가 결제를 취소했습니다” ←- 그냥 Cancel한 케이스
이런 string일 뿐이라서
조금 더 상세한 대응 가이드가 필요합니다.
- 두번째로 orderId를 가지고 서버에서 체크하는 부분을 만들려고 할 때는 저 createOneTimePurchaseOrder 이후 무조건 진행하면 되는것 같긴한데, 사실상 저기로 들어오면 pending 아니면 성공케이스라서 어차피 지급해야하는 케이스만 남아있을 것 같긴한데.. result에서 위에 명시된 에러코드로 내리는 케이스에 대한 것을 알려주시면 감사하겠습니다.(result 데이터 예제라도)