shopify-payments-apps은(는) 무엇을 하나요?
Payments Apps API를 통해 결제 제공업체는 Shopify 체크아웃에 결제 솔루션을 통합할 수 있습니다.
개요
이 스킬은 Shopify Payments Apps API를 사용하여 맞춤형 결제 게이트웨이를 구축하는 방법을 안내합니다. 지원되는 플랫폼으로는 Shopify CLI, REST API, GraphQL API가 있습니다.
주요 기능
- 결제 처리: 거래 승인, 캡처, 취소, 환불을 처리합니다.
- 웹훅 통합: 결제 상태 변경을 실시간으로 수신합니다.
- 인증 및 보안: API 키, OAuth 토큰, 서명 검증을 지원합니다.
시작하기
- Shopify 파트너 대시보드에서 앱을 등록합니다.
- Payments Apps API 범위를 사용하도록 앱을 구성합니다.
shopify app dev를 사용하여 로컬 개발 환경을 설정합니다.- 결제 처리 엔드포인트를 구현합니다.
API 엔드포인트
| 엔드포인트 | 설명 |
|---|---|
POST /admin/api/2024-07/payments_apps/payments.json | 새 결제 세션 생성 |
GET /admin/api/2024-07/payments_apps/payments/{id}.json | 결제 세션 세부 정보 조회 |
POST /admin/api/2024-07/payments_apps/payments/{id}/capture.json | 결제 캡처 |
POST /admin/api/2024-07/payments_apps/payments/{id}/void.json | 결제 취소 |
예제 요청
curl -X POST "https://your-shop.myshopify.com/admin/api/2024-07/payments_apps/payments.json" \
-H "Content-Type: application/json" \
-d '{
"payment": {
"amount": 10.00,
"currency": "USD",
"source": "credit_card",
"test": true
}
}'
웹훅 처리
결제 상태 변경을 수신하려면 웹훅 엔드포인트를 구현하세요.
from flask import Flask, request
import hmac, hashlib
app = Flask(__name__)
SHOPIFY_SECRET = "your_shared_secret"
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.data
signature = request.headers.get('X-Shopify-Hmac-Sha256')
expected = hmac.new(SHOPIFY_SECRET.encode(), data, hashlib.sha256).hexdigest()
if hmac.compare_digest(signature, expected):
# 결제 정보 처리
return 'OK', 200
return 'Unauthorized', 401
보안 모범 사례
- 항상 HTTPS를 사용하세요.
- API 키를 안전하게 저장하고 환경 변수를 사용하세요.
- 웹훅 서명을 검증하여 요청의 진위를 확인하세요.
- 민감한 데이터를 로그에 기록하지 마세요.
문제 해결
- 인증 오류: API 키와 OAuth 토큰이 올바른지 확인하세요.
- 페이로드 유효성 검사 오류: 요청 본문이 올바른 JSON 형식인지 확인하세요.
- Webhook 오류: 엔드포인트가 공개적으로 접근 가능하고 CORS가 올바르게 구성되었는지 확인하세요.
자세한 내용은 공식 Shopify Payments Apps API 문서를 참조하세요.