제 아이디어는 여기서 시작합니다:
Ko-Fi는 기부 플랫폼입니다. 웹훅으로 HTTP POST 요청을 보낼 수 있는 API를 제공합니다.
https://ko-fi.com/manage/webhooks (이 페이지는 로그인해야 하지만 단순히 문서일 뿐이므로, 여기 내용을 복사-붙여넣기 하겠습니다:
Ko-Fi Webhooks 문서
Webhook URL
지급이 완료되면 지정된 URL로 HTTP POST를 보냅니다. URL은 https://로 시작해야 합니다.
Verification Token
아래의 인증 토큰은 웹훅으로 보내는 모든 요청에 포함됩니다. 이는 Ko-Fi 서버가 웹훅 요청의 출처임을 확인하는 데 대한 신뢰도를 높이는 가벼운 방법입니다. 이 수준의 신뢰도가 애플리케이션에 적합한지 확인하십시오. 예를 들어, 인증 토큰은 평문으로 전송된다는 점에 유의하십시오.
XXXXXXXXXXXXXXXXXXXXX
수신 및 응답
데이터는 application/x-www-form-urlencoded 콘텐츠 타입으로 전송(POST)됩니다. 'data’라는 필드에는 JSON 문자열 형태의 결제 정보가 포함됩니다.
리스너는 200 상태 코드를 반환해야 합니다. 이 상태 코드를 받지 못하면 동일한 message_id로 합리적인 횟수만큼 재시도합니다.
type 필드는 Donation, Subscription, Commission, 또는 Shop Order일 수 있습니다.
월간 구독 결제의 경우 is_subscription_payment가 true로 설정됩니다.
누군가가 처음 구독할 때 is_first_subscription_payment가 true가 됩니다.
구독이 멤버십 티어에 해당하면 tier_name에 해당 티어에 부여한 이름이 포함됩니다.
쇼핑 주문의 경우, shop_items에는 단일 속성인 direct_link_code를 가진 쇼핑 아이템 객체의 배열이 포함됩니다.
중요: 웹훅을 사용하여 결제를 공개적으로 표시하는 경우 is_public 필드를 준수하고, 값이 false인 경우 메시지를 숨겨야 합니다.
웹훅을 수신할 서버가 설정되어 있지 않지만 아래 예제를 테스트하려는 경우, https://webhook.site/와 같은 서비스를 사용하여 우리가 보내는 요청을 검사하는 것을 권장합니다.
예제: 단일 기부
단일 기부의 경우 전송될 데이터의 예시는 다음과 같습니다:
data = {
"verification_token": "d8546b84-c698-4df5-9812-39d35813e2ff",
"message_id": "78b207f2-9e6c-4ea7-b47f-5454709824aa",
"timestamp": "2023-02-13T22:39:12Z",
"type": "Donation",
"is_public": true,
"from_name": "Jo Example",
"message": "Good luck with the integration!",
"amount": "3.00",
"url": "https://ko-fi.com/Home/CoffeeShop?txid=00000000-1111-2222-3333-444444444444",
"email": "jo.example@example.com",
"currency": "USD",
"is_subscription_payment": false,
"is_first_subscription_payment": false,
"kofi_transaction_id": "00000000-1111-2222-3333-444444444444",
"shop_items": null,
"tier_name": null,
"shipping": null
}
(등등)
Discourse 포럼에 기부 진행률 표시기를 추가하고, Discourse가 이러한 요청을 수신할 때 업데이트되도록 하고 싶습니다.
테마 컴포넌트가 이러한 요청을 받을 수 있나요, 아니면 플러그인이 필요할까요?
이것이 테마 컴포넌트로 가능할 경우(또는 필요하면 플러그인) 어디서 시작해야 하나요? 몇 가지 힌트나 방향만 주셔도 좋습니다 ![]()