실제로 붙여 넣는 것
결제 버튼은 대시보드에서 한 번 설정합니다. 금액, 자산, 체인, 그리고 결제 후 고객을 어디로 보낼지입니다. 페이지에 붙여 넣는 것은 이것입니다.
<a href="https://pay.unheld.io/pay/btn_8f2c41"
style="display:inline-block;padding:12px 20px;border-radius:8px;background:#3B37F0;color:#fff;font-weight:600;text-decoration:none;font-family:system-ui,sans-serif">
Pay with crypto
</a>이것이 연동의 전부입니다. 그냥 앵커 태그입니다.
스크립트가 아니라 링크인 이유
공개된 페이지의 코드 조각은 비밀 키를 담을 수 없습니다. 누구든 읽을 수 있기 때문입니다. 그래서 버튼은 짐작할 수 없는 공개 식별자만 지니고, 청구서는 클릭될 때 서버 쪽에서 만들어집니다. 계정에 관한 어떤 것도 스토어프론트에 드러나지 않고, 페이지를 느리게 하거나 망가뜨릴 스크립트도, 계속 갱신해야 할 라이브러리도 없습니다.
고객이 그것을 클릭하면 일어나는 일
네 단계이며, 어느 것도 판매자의 서버에서 돌지 않습니다.
- 01
호스팅 결제 화면에 도착합니다
링크가 저장된 설정으로 청구서를 만들고 고객을 저희가 호스팅하는 결제 페이지로 보냅니다. 판매자는 결제 양식을 그리지도, 금액을 숨김 필드에 담아 두지도, 브라우저가 되돌려 보내는 것을 믿지도 않습니다.
- 02
어떤 지갑에서든 결제합니다
돈은 판매자 본인의 지갑에서 파생된 주소로 갑니다. 저희를 거치지 않으므로 출금할 잔액도, 기다릴 정산도 없습니다.
- 03
판매자의 참조값이 함께 돌아옵니다
버튼에 판매자 자신의 필드를 붙일 수 있습니다. 주문 번호, 장바구니 식별자, 상점이 쓰는 무엇이든 됩니다. 그것이 결제를 통과해 웹훅으로 돌아오므로, 금액을 맞춰 보지 않고도 어느 주문이 결제되었는지 알 수 있습니다.
- 04
고객이 판매자에게 돌아갑니다
버튼마다 고유의 성공·취소 주소가 있으므로, 고객은 저희 페이지에 붕 떠 있는 대신 판매자의 주문 확인 페이지로 돌아갑니다.
주문이 결제되었음을 아는 방법
이벤트는 통상적인 청구서 이벤트입니다. 결제 버튼을 통한 결제는 자기만의 어설픈 처리 경로를 가진 별종이 아니라 평범한 청구서입니다.
- invoice.created
- invoice.receiving
- invoice.confirming
- invoice.paid
- invoice.underpaid
- invoice.overpaid
- invoice.expired
모든 웹훅은 서명되고 재시도되며, 버튼에 붙여 둔 참조 필드를 실어 나릅니다. 결제가 처음 눈에 띈 시점이 아니라 확정 이벤트를 기다린 뒤에 발송하세요. 그 둘의 차이가 바로 승인이 존재하는 이유입니다.
연동이 작동하는 방식
연동은 링크 하나입니다. 그것이 정확히 어디까지를 담당하는지 적습니다. 시작하기 전에 작업량을 가늠하실 수 있도록.
- 아직 Shopify 전용 앱이나 WooCommerce 플러그인은 없습니다. 연동은 위의 링크이며, 플랫폼이 HTML을 넣게 해 주는 곳이라면 어디에나 붙일 수 있습니다. 모든 플랫폼이 가능합니다. 전용 플러그인은 개발 계획에 있습니다.
- 장바구니 연동이 없습니다. 버튼은 설정한 금액을 지니므로, 합계가 매번 달라지는 장바구니에는 저장된 버튼이 아니라 API가 필요합니다.
- 무엇도 대신 이행 완료로 표시되지 않습니다. 웹훅은 특정 주문이 결제되었다고 판매자의 시스템에 알려 줄 뿐이고, 그것에 따라 움직이는 것은 상점의 몫입니다.
- 저희를 통한 환불은 없습니다. 애초에 돈을 보관한 적이 없기 때문입니다. 돌려보내는 것은 판매자가 자기 지갑에서, 자기 기준에 따라 하는 하나의 결제입니다.
- 고객에게는 암호화폐 지갑과 그 안의 자금이 필요합니다. 이것은 이미 지갑을 가진 구매자에게 닿는 것이며, 없는 사람을 있게 만들어 주지는 않습니다.
자주 묻는 질문
지금 쓰는 결제 사업자에서 옮겨야 하나요?
아니요. 그리고 그러지 않으셔야 합니다. 이것은 이미 제공하는 수단 옆에 결제 수단을 하나 더 더하는 일입니다. 카드 결제는 그대로이고 그것을 쓰는 고객을 계속 처리합니다. 암호화폐는 대부분 스토어의 주문에서 작은 비중을 차지합니다. 이전이 아니라 추가로 다루는 것이 정직한 틀이자 매출을 위태롭게 하지 않는 방식입니다.
Shopify나 WooCommerce, 제 플랫폼에서도 되나요?
HTML을 붙여 넣을 수 있는 곳이라면 어디서든 됩니다. 대부분의 플랫폼이 그렇습니다. 상품 페이지, 랜딩 페이지, 이메일 하단 모두 가능합니다. 없는 것은 그 어느 것에 대한 네이티브 앱이나 플러그인입니다. 그래서 장바구니 합계 자동 반영도, 관리자 화면에 주문 상태가 되돌아 적히는 일도, 원클릭 설치도 없습니다. 그것들이 필요하다면 아직 준비되지 않았습니다.
주문마다 합계가 다른 경우는 어떻게 하나요?
저장된 버튼은 고정 금액을 지니므로, 합계가 달라지는 장바구니에는 결제 시점에 API로 만드는 청구서가 필요합니다. 요청 한 번이면 고객을 보낼 결제 주소를 돌려받습니다. 버튼은 고정 가격 상품용이고, 그 밖의 모든 것에는 API를 쓰세요.
주문을 언제 발송해도 안전한가요?
결제가 처음 감지되었을 때가 아니라 확정 이벤트가 도착했을 때입니다. 감지는 거래가 나타났다는 뜻이고, 확정은 최종이 될 만큼 체인 안으로 깊이 들어갔다는 뜻입니다. 둘이 별개의 웹훅으로 도착하는 것은 바로 고객에게는 빠르게 “결제 완료”를 보여 주면서도 실물 이행은 결제가 마무리될 때까지 붙들어 둘 수 있게 하기 위해서입니다.