• 블로그
  • 서비스
    • 홈페이지로 앱제작
    • 템플릿으로 앱제작
    • 주문제작 서비스
    • 스토어 유지보수
  • 도움말
  • 앱 제작 시작하기
  • 문의하기
Javascript 웹뷰 API 문서, 개발자 문서

iOS 인앱결제 구현하기

5월 14, 2026 Windy No comments yet

스윙투앱 WebView 모듈(푸시전용)에 인앱결제 모듈을 Javascript API 로 구현하기

스윙투앱에서 제공하는 푸시전용 프로토타입의 앱을 제어할 수 있는 javascript API 입니다.

  • 인앱 모듈은 프리미엄 사용자 또는 별도의 커스터마이징 및 플러그인 구매자에 한해서 이용이 가능합니다.
  • 기본형과 무제한 이용권 사용자는 인앱을 이용할 수 없습니다.

공통적으로 아래의 js 파일을 include 하여 사용하시고 아래의 API 명세를 통해서

필요한 기능을 실행하시면 됩니다.

공통 js 파일 HTML 파일에 아래의 js 파일을 포함시켜주세요

<script src="https://pcdn2.swing2app.co.kr/swing_public_src/v3/2026_02_04_001/js/swing_app_on_web.js"></script>

iOS 인앱결제 구현

결제방식별 인앱 결제 구현하기

(1) 비구독 상품 인앱 결제 구현 예제

비구독 상품은 소모성과 비소모성 상품으로 구분됩니다. 소모성 상품과 비구독상품은 앱스토어 코넥트에서 상품을 등록할때 설정을 통해서 등록이 가능합니다.

✅앱스토어의 소모성 상품

앱스토어에서 소모성 상품은 사용자가 구매한 후 일정량 소모되거나 사라지는 디지털 콘텐츠입니다. 이러한 상품은 구매 후 즉시 사용 가능하며, 사용자가 재구매할 수 있습니다.

(예: 게임 아이템, 충전 포인트 등)

✅앱스토어의 비소모성 상품

비소모성 상품은 한 번 구매하면 영구적으로 사용 가능한 상품을 말합니다. 예를 들어, 광고 제거 기능이나 특정 기능의 영구적인 해제 등이 해당됩니다. 비소모성 상품은 반복 구매가 불가능하여, 구매 완료 상태를 사용자 계정에 저장하고 관리해야 합니다.

(예: 유료 컨텐츠 구매, 영화 다운로드 등)

✅구현 예제

구현을 시작하기 전에, 앱스토어 콘솔에서 소모성 상품 또는 비소모성 상품을 생성하고, 해당 상품 ID를 준비합니다. 아래는 비구독상품 결제를 스윙투앱 모듈에서 구현하는 코드의 예시입니다:복사

var productId = 'test_product_id';
swingWebViewPlugin.app.inapp.buy(productId,
    function(responseCode,data) {
        console.log('responseCode : ' + responseCode + ', ret : ' + JSON.stringify(data));
        if( responseCode == 1 ) // 성공
        {
            console.log('originalData : ' + data );                                            
            // 값 예시
            // responseCode : 1, ret : "{\"transaction\":{\"transactionIdentifier\":\"2000000524327453\"},\"productId\":\"swbwregsubweek\",\"needsFinishTransaction\":false,\"originalTransaction\":{\"transactionIdentifier\":null},\"receipt\":\"=test=\",\"quantity\":1}"
            data = JSON.parse(data);
            var receipt = data.receipt;
            var productId = data.productId;
            var transactionIdentifier = data.transaction.transactionIdentifier;

            // ajax 호출을 통해 서버에 transaction 정보를 확인해보세요.
            // 유효한 구독 상품인지 확인을 위해 아래의 함수를 호출합니다.
            // 구독 상태 정보 backend 구현은 아래의 API 를 참고하시면 됩니다.
            // https://developer.apple.com/documentation/appstoreserverapi/get_all_subscription_statuses
            console.log('receipt : ' + receipt );
            console.log('transactionId : ' + transactionIdentifier );
            console.log('productId : ' + productId );

        }
        else    // 기타 에러
        {
            console.log('error code : ' + responseCode );
        }

    })

이 코드는 사용자가 제품을 구매하려고 할 때 결제 API를 호출하고, 결제 성공 시 영수증을 처리하는 과정을 보여줍니다. 각 단계에서 발생할 수 있는 오류를 처리하여 사용자 경험을 향상시키는 것이 중요합니다.

(2) 구독 상품 인앱 결제 구현 예제

구독상품은 앱스토어 코넥트에서 상품을 등록할때 설정을 통해서 등록이 가능합니다.

정기 구독 및 비정기 구독 상품 모두 아래의 코드로 결제를 진행할 수 있습니다.

(3)앱스토어 인앱 결제 구독 상품 설명

앱스토어의 인앱 결제 구독은 사용자가 특정 기간 동안 지속적으로 서비스를 사용할 수 있도록 하는 결제 모델입니다. 구독 상품은 주로 정기적인 콘텐츠 업데이트가 있는 앱에서 활용됩니다. 구독 모델은 고객 유지율을 높이고, 안정적인 수익 창출을 도와줍니다.

구독 상품 예제 코드

구독 상품 결제를 처리할 때 아래와 같은 예제를 참고할 수 있습니다:복사

var productId = 'test_product_id';
swingWebViewPlugin.app.inapp.subscribe(productId,
    function(responseCode,data) {
        console.log('responseCode : ' + responseCode + ', ret : ' + JSON.stringify(data));
        if( responseCode == 1 ) // 성공
        {
            console.log('originalData : ' + data );    
            // 값 예시
            // responseCode : 1, ret : "{\"transaction\":{\"transactionIdentifier\":\"2000000524327453\"},\"productId\":\"swbwregsubweek\",\"needsFinishTransaction\":false,\"originalTransaction\":{\"transactionIdentifier\":null},\"receipt\":\"=test=\",\"quantity\":1}"
            data = JSON.parse(data);
            var receipt = data.receipt;
            var productId = data.productId;
            var transactionIdentifier = data.transaction.transactionIdentifier;

            console.log('receipt : ' + receipt );
            console.log('transactionId : ' + transactionIdentifier );
            console.log('productId : ' + productId );
            
            // ajax 호출을 통해 서버에 transaction 정보를 확인해보세요.
            // 유효한 구독 상품인지 확인을 위해 아래의 함수를 호출합니다.
            // 구독 상태 정보 backend 구현은 아래의 API 를 참고하시면 됩니다.
            // https://developer.apple.com/documentation/appstoreserverapi/get_all_subscription_statuses
        }
        else    // 기타 에러
        {
            var errorCode = responseCode;
            var errorMsg = data;
            console.log('error msg : ' + errorMsg );
            //  errorCode list
            //  Unknown error. Please contact support = 0;
            //  Not allowed to make the payment = 1 or 3;
            //  The device is not allowed to make the payment = 4;
            //  The product is not available in the current storefront = 5;
            //  Access to cloud service information is not allowed = 6;
            //  Could not connect to the network = 7;
            //  User has revoked permission to use this cloud service = 8;
        }

    })

위의 코드에서는 사용자가 구독을 구매하려고 할 때 결제 API를 호출하고, 결제가 성공적으로 완료되면 관련 데이터를 처리합니다. 구독 상태를 지속적으로 확인하고 갱신하여 사용자가 콘텐츠를 지장 없이 사용할 수 있도록 보장합니다.


앱스토어 구독 여부 체크

특정 productId(구독 상품)에 대해 사용자의 현재 구독 활성 상태를 네이티브에서 확인하여 웹(JS)로 반환

** js lib 2025_08_29_001 부터 사용가능복사

swingWebViewPlugin.app.inapp.isSubscribed(productId, function(value) {
  if (value) {
    // 구독중
  } else {
    // 미구독 상태
  }
});
Windy

글 내비게이션

Previous
Next

Search

Categories

  • Firebase 연동 3
  • Javascript 웹뷰 API 문서 5
  • Server Side API 명세서 7
  • 개발자 문서 24
  • 대표의 컬럼 9
  • 스윙투앱 기능 7
  • 스토어유지보수 1
  • 앱 개발 8
  • 앱 운영 TIP 8
  • 앱스토어 11
  • 웹뷰 웹뷰,푸시전용 개발도구 6
  • 플레이스토어 33
  • 하이브리드앱 웹앱 2

Tags

aab파일 AI앱개발 APK파일 DUNS DUNS번호 DUNS번호 발행 DUNS번호조회 ios 개발자가이드 구글개발자계정 구글플레이 노코드앱제작 던스번호 리뷰 비공개테스트 스토어유지보수 심사거절 안드로이드API 애플 애플개발자계정 애플엔터프라이즈 앱개발 앱개발비용 앱미리보기 앱설치 앱스토어 앱 심사 어플제작 웹뷰브라우저 웹뷰앱 푸시기능 푸시알림 푸시앱 플레이스토어

Archives

  • 2026년 5월
  • 2026년 4월
  • 2026년 3월
  • 2026년 2월
  • 2025년 12월
  • 2025년 9월
  • 2025년 7월
  • 2025년 6월
  • 2025년 5월
  • 2025년 4월
  • 2025년 3월

Categories

  • Firebase 연동
  • Javascript 웹뷰 API 문서
  • Server Side API 명세서
  • 개발자 문서
  • 대표의 컬럼
  • 스윙투앱 기능
  • 스토어유지보수
  • 앱 개발
  • 앱 운영 TIP
  • 앱스토어
  • 웹뷰 웹뷰,푸시전용 개발도구
  • 플레이스토어
  • 하이브리드앱 웹앱

Related articles

Server Side API 명세서, 개발자 문서

푸시 API를 이용하여 푸시 발송하기

5월 18, 2026 Windy No comments yet

스윙투앱 푸시발송 API 푸시 API 를 이용하여 스윙투앱 푸시 발송하기 스윙투앱에서는 대시보드에서 발송하는 푸시 메시지를 API 형태로 발송하는 것을 다음과 같이 제공하고 있습니다. 사전에 협의되지 않은 방식의 API 사용과 , 무분별한 대량발송의 경우 사용에 제한을 받을 수 있습니다. *해당 API 는 유료앱 사용자에게 제공되는 항목 입니다. *App Id, App Key 정보는 아래 가이드에서 확인 가능합니다. […]

Server Side API 명세서, 개발자 문서

푸시기기 삭제하기

5월 18, 2026 Windy No comments yet

스윙투앱 푸시발송 기기정보 삭제하기 API 를 이용하여 기기정보 삭제하기 스윙투앱에서는 관리하는 푸시 기기정보를 삭제하는 API를 다음과 같은 형태로 제공하고 하고 있습니다. 사전에 협의되지 않은 방식의 API 사용과 , 무분별한 대량발송의 경우 사용에 제한을 받을 수 있습니다. *해당 API 는 유료앱 사용자에게 제공되는 항목 입니다. *App Id, App Key 정보는 아래 가이드에서 확인 가능합니다. API-KEY 관리 […]

Server Side API 명세서, 개발자 문서

회원 삭제하기

5월 18, 2026 Windy No comments yet

스윙투앱 회원삭제 API API 를 이용하여 스윙투앱 회원삭제하기 스윙투앱에서는 관리하는 회원정보를 삭제하는 API를 다음과 같은 형태로 제공하고 하고 있습니다. 사전에 협의되지 않은 방식의 API 사용과 , 무분별한 대량발송의 경우 사용에 제한을 받을 수 있습니다. *해당 API 는 유료앱 사용자에게 제공되는 항목 입니다. *App Id, App Key 정보는 아래 가이드에서 확인 가능합니다. https://documentation.swing2app.co.kr/manual/appmanage/service/api_key 회원 삭제하기 API […]

웹사이트를 앱으로 제작하고 싶으신가요? 스윙투앱과 함께라면 코딩없이 5분만에 앱을 제작할 수 있습니다.

링크
  • 앱 제작하러 가기
  • 블로그
  • 문의하기
지원 및 도움말
  • 도움말
  • FAQ
  • 서비스 이용약관

Copyright © 2015 Swing2App. All rights reserved.

  • Privacy Policy