Stripe Checkout 세션에서 장바구니 항목을 가져오는 방법
11853 단어 nodestripecheckoutstripetutorial
고객은 결제 시 추가 항목을 추가하거나 권장 항목 수를 수정하거나 항목 수를 수정할 수 있습니다.
판매자의 경우 주문한 항목을 아는 것이 주문을 이행하는 데 매우 중요하므로 결제 세션을 완료한 후 주문한 항목 목록을 가져와야 합니다.
결제 세션을 완료한 후 주문한 항목 목록을 가져와야 합니다.
list_line_items API를 사용하여 주문한 항목 나열
node.js에서 다음 코드는 주문한 항목을 가져옵니다.
const items = await stripe.checkout.sessions.listLineItems(sessionId); // cs_xxxx
Checkout 세션 이벤트를 수신하기 위해 웹후크에서 주로 이 메서드를 사용합니다.
const stripe = require('stripe')('YOUR_SECRET_API_KEY');
const express = require('express');
const app = express();
// This is your Stripe CLI webhook secret for testing your endpoint locally.
const endpointSecret = "whsec_xxxxxxx";
app.post('/webhook', express.raw({type: 'application/json'}), async (request, response) => {
const sig = request.headers['stripe-signature'];
let event;
try {
event = stripe.webhooks.constructEvent(request.body, sig, endpointSecret);
} catch (err) {
response.status(400).send(`Webhook Error: ${(err as Error).message}`);
return;
}
/**
* Avoiding unrelated events.
**/
const data = event.data.object;
if (
event.type !== 'checkout.session.completed' &&
event.type !== 'checkout.session.async_payment_succeeded'
) {
return response.sendStatus(200);
}
if (data.payment_status === 'paid') {
const { items } = await stripe.checkout.sessions.listLineItems(data.id);
/**
* TODO: fulfilling the order
**/
}
// Return a 200 response to acknowledge receipt of the event
response.send();
});
app.listen(4242, () => console.log('Running on port 4242'));
은행 송금이나 상품권과 같은 비동기 결제 방법을 지원하려면
checkout.session.async_payment_succeeded
이벤트도 처리하는 것을 잊지 마십시오.감사 페이지에 주문한 항목 표시
성공 페이지의 URL 쿼리 문자열에서 세션 ID를 얻을 수 있습니다.
체크아웃 세션 생성
const session = await stripe.checkout.sessions.create({
success_url: "http://yoursite.com/order/success?session_id={CHECKOUT_SESSION_ID}",
// other options...,
});
항목을 가져오기 위해 새 API를 추가합니다.
app.get('/checkout/:session_id/line_items', async (req, res) => {
const sessionId = req.params['session_id'];
const items = await stripe.checkout.sessions.listLineItems(sessionId);
res.status(200).json(items.data);
});
세션 ID 가져오기 및 백엔드 API 호출
const url = new URL(window.location);
const sessionId = url.searchParams.get('session_id');
fetch(`https://example.com/checkout/${sessionId}`)
.then(data => data.json())
.then(items => {
console.log(items);
});
다른 사용 사례
또한 세션에서 완료되지 않은 장바구니 항목을 가져올 수도 있습니다.
따라서 세션이 완료되기 전에 사이트를 떠나는 경우 세션 ID를 보유하고 있으면 세션을 복원할 수 있습니다.
스트라이프 체크아웃에 대해 자세히 알아보기
일본어판: https://qiita.com/hideokamoto/items/565e3fbba33885be726e
Reference
이 문제에 관하여(Stripe Checkout 세션에서 장바구니 항목을 가져오는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/stripe/how-to-get-the-cart-item-in-the-stripe-checkout-session-2ld3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)