Solana Pay는 개발자들이 탈중앙화 결제를 자신의 앱과 서비스에 통합할 수 있도록 하는 표준 프로토콜 및 참조 구현 세트입니다. Solana 생태계 전반에 걸쳐 통합된 결제 방식을 제공하여 지갑, 앱 및 서비스 간의 호환성을 보장합니다.
프로토콜 개요
Solana Pay는 두 가지 주요 유형의 결제 요청을 정의합니다:
전송 요청 (비대화형)
전송 요청은 URL 매개변수를 사용하여 간단한 SOL 또는 SPL 토큰 전송을 설명합니다. 지갑은 추가적인 서버 통신 없이 직접 트랜잭션을 구성하고 서명할 수 있습니다.
solana:recipient?amount=1.5&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
사용 사례:
- 간단한 결제 및 기부
- 판매 시점 QR 코드 결제
- 이메일 또는 메시지의 결제 링크
- 모바일 앱 딥 링킹
트랜잭션 요청 (대화형)
트랜잭션 요청은 지갑이 서버와 통신하여 모든 Solana 트랜잭션을 구성함으로써 복잡한 상호작용을 가능하게 합니다. 이를 통해 단순 전송을 넘어선 고급 사용 사례를 실현할 수 있습니다.
solana:https://merchant.com/api/payment
사용 사례:
- 판매 시점 NFT 발행
- 동적 가격 책정 및 할인
- 다단계 DeFi 트랜잭션
- 로열티 프로그램 통합
- 맞춤형 비즈니스 로직
주요 이점
개발자를 위한 이점
- 표준 프로토콜: 모든 Solana 지갑에서 작동하는 하나의 구현
- 프레임워크 독립적: 모든 웹 프레임워크 또는 모바일 플랫폼과 사용 가능
- 타입 안전성: JavaScript SDK의 완전한 TypeScript 지원
- 유연성: 간단한 전송부터 복잡한 다중 명령 트랜잭션까지
사용자를 위한 이점
- 빠름: 1초 이내 트랜잭션 확인
- 저렴함: 트랜잭션당 평균 $0.0005의 비용
- 안전함: 중개자나 제3자 처리 업체 없음
- 범용성: 모든 Solana 지갑과 호환
판매자를 위한 혜택
- 수수료 없음: 처리 수수료 없이 직접 결제
- 실시간: 즉각적인 정산 및 확인
- 글로벌: 전 세계 어디서나 결제 수령
- 조합 가능: DeFi 프로토콜 및 NFT 마켓플레이스와 통합
기술 아키텍처
URL 스킴
Solana Pay는 웹 브라우저와 모바일 운영체제에서 작동하는 커스텀 URL 스킴
solana:을 사용합니다:
- 웹: URL을 링크로 사용하거나 QR 코드로 인코딩 가능
- 모바일: 지갑 앱과의 딥 링크 통합
- 데스크톱: 원활한 지갑 실행을 위한 프로토콜 핸들러
JavaScript SDK
@solana/pay SDK(@solana/kit 기반)는 다음을 제공합니다:
- 클라이언트 팩토리:
createMerchantClient,createWalletClient,createSolanaPayClient로 조합 가능한 결제 플로우 구성 - URL 인코딩/파싱:
encodeURL,parseURL로 Solana Pay URL 처리 - 전송 생성:
createTransfer로 SOL 및 SPL 토큰 결제 명령어 생성 - 결제 검증:
findReference,validateTransfer,watchReference로 결제 감지 및 검증 - QR 코드: 스캔 가능한 결제 코드 생성을 위한 내장
createQR - 키트 플러그인:
solanaPayMerchant(),solanaPayWallet()로 다른@solana/kit플러그인과 조합
지갑 통합
지원 지갑은 다음을 구현합니다:
- URL 스킴 처리 및 파싱
- 트랜잭션 구성 및 검증
- 사용자 확인 플로우
- 트랜잭션 브로드캐스팅 및 모니터링
결제 플로우 예시
웹 앱에서 모바일 지갑으로
- 웹 앱이 Solana Pay URL로 QR 코드 생성
- 사용자가 지갑 앱으로 QR 코드 스캔
- 지갑이 URL을 파싱하고 결제 세부정보 표시
- 사용자가 지갑에서 결제 확인
- 지갑이 트랜잭션 서명 및 브로드캐스트
- 웹 앱이 결제 확인 감지
웹 앱에서 브라우저 지갑으로
- 웹 앱이 "Solana로 결제" 버튼 표시
- 사용자가 버튼을 클릭하여 지갑 실행
- 지갑 확장 프로그램이 결제 확인 화면 표시
- 사용자가 트랜잭션 승인
- 트랜잭션 서명 및 전송
- 웹 앱이 결제 확인 수신
모바일 앱에서 모바일 지갑으로
- 모바일 앱이 결제 딥링크 생성
- 딥링크가 지갑 앱 실행
- 지갑에 결제 확인 화면 표시
- 사용자가 결제 승인 또는 거부
- 지갑이 원래 앱으로 복귀
- 앱이 결제 결과 수신
보안 고려사항
가맹점을 위한 보안
- 트랜잭션 검증: 항상 온체인에서 트랜잭션 세부정보를 확인하세요
- 참조 키 사용: 결제를 식별하기 위해 고유한 참조 키를 포함하세요
- 서버측 검증: 서버측에서 금액을 계산하고 결제를 검증하세요
- 요청 제한: 결제 엔드포인트에 적절한 요청 제한을 구현하세요
지갑 개발자를 위한 보안
- URL 검증: 모든 URL 구성 요소를 검증하고 sanitize하세요
- 사용자 확인: 항상 사용자에게 명확한 결제 세부정보를 표시하세요
- 트랜잭션 검증: 서명하기 전에 트랜잭션 내용을 확인하세요
- HTTPS만 사용: 트랜잭션 요청에는 HTTPS URL만 허용하세요
통합 패턴
전자상거래 결제
- 고객이 장바구니에 상품 추가
- 가맹점이 주문 세부정보가 포함된 결제 요청 생성
- 고객이 QR 코드를 스캔하거나 결제 버튼 클릭
- 지갑에 항목별 영수증과 총액 표시
- 고객이 결제 확인
- 가맹점이 트랜잭션을 검증하고 주문 처리
판매 시점(POS)
- 계산원이 판매 금액 입력
- POS 시스템이 QR 코드 표시
- 고객이 모바일 지갑으로 스캔
- 결제가 즉시 처리됨
- 영수증 자동 출력
구독 서비스
- 사용자가 서비스 구독
- 서비스가 반복 결제 일정 생성
- 자동화 시스템이 결제 요청 생성
- 사용자가 지갑을 통해 결제 승인
- 서비스가 결제 상태 추적
모범 사례
URL 생성
- 모든 트랜잭션 요청 엔드포인트에 HTTPS 사용
- 설명이 포함된 레이블과 메시지 포함
- 결제 추적을 위한 고유한 참조 생성
- URL 생성 전 모든 매개변수 검증
트랜잭션 처리
- 항상 서버 측에서 트랜잭션을 검증하세요
- 보안을 위해 적절한 확인 횟수를 사용하세요
- 적절한 오류 처리 및 재시도를 구현하세요
- 정산을 위해 결제 이벤트를 기록하세요
사용자 경험
- 명확한 결제 확인을 제공하세요
- 트랜잭션 상태 업데이트를 표시하세요
- 지갑 연결을 원활하게 처리하세요
- 여러 지갑 옵션을 지원하세요
다음 단계
Solana Pay를 통합할 준비가 되셨나요? 다음 가이드로 시작하세요:
리소스
- 공식 사양 - 완전한 프로토콜 사양
- GitHub 저장소 - 소스 코드 및 예제
- 브랜드 가이드라인 - 로고 및 브랜드 자산
Is this page helpful?