결제구독

Pay.sh로

Pay.sh를 통해 기기에 Pay 클라이언트를 설정하거나 Pay 서버를 설정하여 구독을 구성할 수 있습니다. 다음 명령으로 Pay를 설치하세요:

brew install pay

또는

npm install -g @solana/pay

다음 명령으로 설치를 확인하세요:

pay --version

툴체인이 자동으로 주소를 설정해 드립니다. 다음 명령을 실행하여 지갑을 설정하고 충전하세요:

pay setup

클라이언트로서의 구독

사용자는 평소처럼 pay를 호출하여 구독이 필요한 API 엔드포인트를 구독합니다. API는 초기 402 Status 응답에서 구독 세부 정보를 전송해야 합니다. Pay는 Solana SPL 구독 프로그램의 명령 호출을 포함하여 구독을 자동으로 처리합니다.

사용자는 다음 명령을 사용하여 구독을 관리할 수 있습니다:

pay subscriptions # default: list + show available subcommands
pay subscriptions list # same, scriptable
pay subscriptions list --network mainnet
pay subscriptions list --json

사용자로서 구독을 관리하는 방법에 대한 자세한 내용은 Pay.sh > Pay 사용 > 구독 관리 문서에서 확인할 수 있습니다.

제공자로서의 구독 관리 (데모)

Pay 서버를 사용하면 각 엔드포인트에 대해 구독자와 구독을 구성할 수 있습니다. 다음은 프로젝트에서 시험해볼 수 있는 pay를 사용하는 엔드포인트 예시입니다:

# monthly.yml
name: Subscriptions Example
subdomain: subscriptions-example
title: "Subscription Example"
description: "Demo Subscriptions"
category: ai_ml
version: v1
routing:
type: respond
operator:
currencies:
usd: ["USDC", "USDT", "CASH"]
network: "localnet"
fee_payer: true
challenge_binding_secret: d858d9104afd728f58a1f73d806dd75d8f32ebd37c9707145816b490e8631d41
# insert your own challenge_binding_secret here. use `openssl rand -hex 32`
endpoints:
- method: GET
path: "api/v1/pro/feed"
resource: "pro-feed"
description: "Pro feed — monthly subscription, 30-day billing period."
subscription:
period: "30d"
price_usd: 9.99
currency: USDC
plan_id_numeric: 1

Pay는 endpoints YAML 사양에서 subscription: 속성을 사용하여 구독을 처리합니다. 이는 종량제 엔드포인트의 metering: 속성과는 다릅니다.

위 예시에서 서버를 시작하면 api/v1/pro/feed라는 엔드포인트가 생성되며, 사용자는 30일마다 9.99 USDC를 반복 결제해야 합니다.

다음 명령을 실행하여 시험해볼 수 있습니다:

pay server start monthly.yml

이 명령을 실행하면 플랜 생성을 요청하는 메시지가 표시됩니다. 이를 통해 플랜이 생성되고 yml 파일이 업데이트됩니다. 이후에도 사용할 계획이라면 플랜 주소를 기억해 두고, 변경 사항을 적용할 때 해당 주소를 설정에 사용하세요.

다른 터미널에서 클라이언트로 다음 명령어를 실행하여 구독이 정상적으로 작동하는지 테스트할 수 있습니다:

# First call — activates the subscription, $9.99 USDC charge settles.
pay --sandbox curl http://127.0.0.1:1402/api/v1/pro/feed
# Same call within 30 days — no payment prompt, just the response.
pay --sandbox curl http://127.0.0.1:1402/api/v1/pro/feed

다음과 같이 응답으로 OK 상태가 표시되어야 합니다:

{ "status": "ok" }

Pay.sh > Building with Pay > Subscriptions > YAML Specification docs를 통해 Pay 서버에서 구독을 관리하는 방법에 대해 자세히 알아볼 수 있습니다.

Is this page helpful?

목차

페이지 편집