주 콘텐츠로 건너뛰기

앱에서 Payment for Stripe 시작하세요(URL 스키마)

간단히 설명하자면, 앱이나 웹사이트에서 payment:// URL을 열면 Payment for Stripe 결제를 진행하고, 결제 완료 후 콜백 URL을 열어줍니다. SDK도 필요 없고, 서버 작업도 필요 없습니다. 아이폰과 안드로이드에서 동일하게 작동하지만, 아래에 몇 가지 차이점이 있습니다.

전체 참조 정보는 paymentforstripe.com/api 에서 확인할 수 있습니다.

작동 방식

  1. 앱이 매개변수와 함께 payment:// URL을 엽니다.
  2. Payment for Stripe 열리면 판매 거래가 설정됩니다. 판매자는 카드 리더기, Tap to Pay) 또는 직접 카드 정보를 입력하는 방식으로 결제를 받습니다.
  3. 완료되면 앱은 결과를 쿼리 매개변수로 추가하여 callback URL을 엽니다.

판매자는 로그인되어 있어야 합니다. 다른 결제가 진행 중인 동안 링크가 도착하면 앱에서 해당 링크를 거부하고 콜백 함수에서 error=charge_in_progress 가 발생합니다.

결제 생성: paymentnew

설정한 금액으로 한 번만 결제하는 방식입니다.

이름 유형 필수의 설명
amount 정수 예 통화의 최소 단위로 표시된 금액으로 0보다 큽니다. 1000 = 10.00달러.
currency 끈 아니요 usd 또는 eur 와 같은 세 글자 ISO 코드를 입력하세요. 입력하지 않으면 앱은 이미 설정된 통화를 사용합니다.
description 끈 아니요 요금 내역을 URL 인코딩하세요.
customer 끈 아니요 기존 Stripe 고객 ID( cus_…)도 사용 가능합니다. customer_id 설정하면 email 과 name 무시됩니다.
email 끈 아니요 고객 이메일입니다. 신규 고객을 생성합니다.
name 끈 아니요 고객 이름입니다. URL 인코딩하세요. 새 고객을 생성합니다.
metadata 끈 아니요 결제에 추가되는 키-값 쌍으로 구성된 URL 인코딩된 JSON 객체입니다. Stripe 의 메타데이터 제한 사항이 적용됩니다.
callback 끈 아니요 판매가 종료되면 열릴 URL입니다.
autoprocess 부울 아니요 true 설정하면 키패드 입력을 건너뛰고 바로 충전을 시작합니다. 기본값은 false.
auto_return 부울 아니요 true 설정하면 결과가 나오는 즉시 콜백이 실행됩니다. 기본값은 false 이며, 이 경우 콜백은 판매자가 결과 화면을 닫을 때까지 기다립니다.
 payment://new?amount=2500&currency=eur&description=Coffee%20and%20pastry
 payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-complete

amount 누락되었거나, 0이거나, 숫자가 아닌 링크는 무시됩니다.

카탈로그에서 결제 카트를 이용하여 송장을 생성하세요.

Stripe 제품 카탈로그에서 가격을 가져와 장바구니에 담습니다. 판매자는 평소처럼 결제를 진행하고, 해당 판매 내역은 Stripe 에 결제 완료된 송장으로 저장되며, 송장에는 해당 품목들이 포함됩니다. 고객에게는 이메일로 송장이 발송되지 않습니다.

이름 유형 필수의 설명
prices 끈 예 쉼표로 구분된 price_id:quantity 쌍(예: price_abc:2,price_xyz:1)을 사용하세요. line_items 도 작동합니다.
coupon 끈 아니요 장바구니에 적용할 Stripe 쿠폰 ID입니다.
customer 끈 아니요 기존 Stripe 고객 ID입니다. customer_id 도 사용 가능합니다.
email 끈 아니요 고객 이메일입니다. 신규 고객을 생성합니다.
name 끈 아니요 고객 이름입니다. URL 인코딩하세요.
metadata 끈 아니요 키-값 쌍으로 구성된 URL 인코딩된 JSON 객체입니다.
callback 끈 아니요 판매가 종료되면 열릴 URL입니다.
autoprocess 부울 아니요 true 모든 가격 정보(및 쿠폰)가 로드된 후에 요금 청구를 시작합니다.
auto_return 부울 아니요 위와 동일합니다. 기본값은 false.
 payment://cart?prices=price_coffee:2,price_muffin:1&email=customer@example.com

prices 과 amount 함께 보내지 마세요. 총액은 가격을 합산하여 계산되므로, 금액과 가격이 모두 포함된 링크는 무시됩니다. payment_hidden 으로 가격을 숨긴 경우에도 정상적으로 작동합니다.

기존 청구서 결제: 청구서 결제

Stripe 결제 시스템에 등록된 미결제 송장에 대한 대면 결제를 처리합니다. 금액, 통화, 고객 정보, 세금 정보는 모두 송장에서 가져옵니다. 결제가 완료되면 앱에서 송장을 결제 완료로 표시합니다. iPhone 및 Android 기기에서 사용 가능합니다.

이름 유형 필수의 설명
id 끈 예 Stripe 송장 ID. 반드시 in_ 으로 시작해야 합니다. 미결제 송장을 전송합니다. iPhone에서는 먼저 초안이 확정됩니다. Android에서는 초안이 거부되고 error=invoice_state_changed.
metadata 끈 아니요 URL로 인코딩된 JSON 객체가 PaymentIntent에 추가되었습니다.
callback 끈 아니요 판매가 완료되면 열릴 URL입니다. 성공 시 invoice_id 와 payment_intent_id 가져옵니다.
autoprocess 부울 아니요 true 카드 판독기가 연결된 경우에만 청구서 확인이 완료된 후에 요금 청구를 시작합니다.
auto_return 부울 아니요 위와 동일합니다. 기본값은 false.
 payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paid

송장은 판매 정보를 결정하므로 amount, currency, customer, customer_id, email, name, description, coupon, prices 또는 line_items 중 하나라도 잘못 입력되면 링크가 거부되고 error=invoice_invalid_param. 이미 결제되었거나, 무효이거나, 회수 불가능하거나, 금액이 0이거나, 구독과 연결되어 있거나, 기본 결제 수단으로 설정된 송장도 각각 고유한 오류 invoice_… 와 함께 거부됩니다.

콜백

앱은 다음 항목들을 콜백 URL에 추가합니다.

이름 유형 전송된 설명
status 끈 언제나 success, error 또는 cancelled.
charge_id 끈 성공에 관하여 결제 ID입니다. iPhone에서는 Stripe 청구 ID( ch_…)이고, Android에서는 PaymentIntent( pi_…)입니다.
stripe_charge_id 끈 안드로이드 전용 Stripe 수수료( ch_…).
payment_intent_id 끈 성공에 관하여 PaymentIntent는 iPhone에서는 payment://invoice 에만 전송되고, Android에서는 모든 카드 결제 시에 전송됩니다.
invoice_id 끈 송장 링크 payment://invoice.
amount 정수 성공에 관하여 청구 금액(최소 단위).
currency 끈 성공에 관하여 소문자 ISO 코드.
error 끈 오류 발생 charge_in_progress 또는 invoice_already_paid 와 같은 짧은 코드 또는 카드 거절 시 읽기 쉬운 메시지.
 myapp://payment-complete?status=success&charge_id=ch_3Qx…&success=true&amount=3500&currency=usd&chargeId=ch_3Qx…

두 플랫폼에서 동일한 ID가 필요하신가요? 먼저 stripe_charge_id 읽고, 필요한 경우 charge_id 로 대체하세요.

기존 통합의 경우 앱은 success=true, chargeId, cancelled=true 및 error[message] 도 전송합니다. 새 코드는 status 읽어야 합니다.

취소 요청은 콜백 함수를 즉시 실행합니다. 결제 성공 또는 오류는 판매자가 결과 화면을 닫을 때까지 기다립니다. 단, auto_return=true 지정한 경우는 예외입니다. 아이폰의 경우 현금 결제는 결제가 이루어지지 않으므로 콜백 함수가 실행되지 않습니다.

URL 인코딩

  • 공백이나 기호가 포함된 모든 값을 인코딩합니다. 공백은 %20, 중괄호 { 와 } 는 %7B 와 %7D, 큰따옴표 " 는 %22, : 은 %3A 로 변환합니다.
  • 콜백 URL에 자체 쿼리 문자열이 있는 경우, 콜백 전체를 인코딩하여 & 가 payment:// 링크를 분할하지 않도록 하세요.
  • prices 에 있는 쉼표와 콜론은 그대로 두어도 됩니다.

메타데이터 {"order_id":"1234","location":"Store A"} 다음과 같이 변경됩니다.

 payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7D

이전 metadata[order_id]=1234 형식도 작동합니다.

도움이 되었습니까?
0명 중 0명이 도움이 되었다고 했습니다.