我正在嘗試使用這個教程來集成Stripe。
我的代碼正在運行,但我現在希望將用戶重定向至 Stripe 回傳的 URL。
這是Stripe提供的未經修改的原始node.js代碼:
//設定您的秘鑰。記得在生產中切換到你的實時秘鑰。
//在這里看到你的密鑰: https://dashboard.stripe.com/apikeys
const stripe = require( stripe')(SECRET_KEY_GOES_HERE) 。
//從客戶端傳來的價格ID。
// const {priceId} = req.body;
const priceId = '{{PRICE_ID}}'/span>。
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
payment_method_types: ['card']。
line_items: [
{
價格: priceId,
//對于計量收費,不要傳遞數量。
quantity: 1,
},
],
//{CHECKOUT_SESSION_ID}是一個字串字面,不要改變它!。
//當你的客戶在查詢引數中回傳實際的會話ID。
///被重定向到成功頁面。
success_url。'https://example.com/success.html?session_id={CHECKOUT_SESSION_ID}'/span>。
cancel_url: 'https://example.com/canceled.html'。
});
//重定向到結賬環節回傳的URL。
//使用Express,你可以用以下方式重定向:
//res.redirect(303, session.url);
在底部,它說我可以使用Express重定向到回傳的URL。
為了實作這一點,我已經嘗試在頂部要求express,然后取消對最后一行的注釋。但是res沒有被定義,所以它不能作業。
我是node.js和express的新手,所以我不確定該如何設定。
以下是我修改后的代碼,由于沒有定義res,所以無法作業:
const app = require('express') ();
//設定你的秘鑰。記得在生產中切換到你的實時秘鑰。
//在這里看到你的密鑰:https://dashboard.stripe.com/apikeys。
const stripe = require( stripe')(SECRET_KEY_GOES_HERE) 。
//從客戶端傳來的價格ID。
// const {priceId} = req.body;
const priceId = '{{PRICE_ID}}'/span>。
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
payment_method_types: ['card']。
line_items: [
{
價格: priceId,
//對于計量收費,不要傳遞數量。
quantity: 1,
},
],
//{CHECKOUT_SESSION_ID}是一個字串字面,不要改變它!。
//當你的客戶在查詢引數中回傳實際的會話ID。
///被重定向到成功頁面。
success_url。'https://example.com/success.html?session_id={CHECKOUT_SESSION_ID}'/span>。
cancel_url: 'https://example.com/canceled.html'。
});
//重定向到結賬環節回傳的URL。
//使用Express,你可以用以下方式重定向:
res.redirect(303, session.url) 。
我怎樣才能讓這個作業正常進行呢?
重定向不一定要使用express,如果你有其他方法可以作業的話。
uj5u.com熱心網友回復:
res之所以未被定義,是因為它是一個回呼的引數,被傳遞到一個路由中。
下面是一個來自docs的基本例子:
app.get('/', function (req, res) {
res.send('Hello World!')
})
這里發生的事情是,當客戶端請求主頁時,他們將得到 "Hello World "的回應。
你需要這樣做:
const express = require('express'/span>)
//設定你的秘鑰。記得在生產中切換到你的實時秘鑰。
//在這里看到你的密鑰:https://dashboard.stripe.com/apikeys。
const stripe = require( stripe')(SECRET_KEY_GOES_HERE) 。
const app = express()
const port = 3000.
app.get('/<the path your client will call to run stripe>', (req, res) => //span> {
//從客戶端傳來的價格ID。
// const {priceId} = req.body;
const priceId = '{{PRICE_ID}}'/span>。
const session = await stripe.checkout.sessions.create({
mode: 'subscription',
payment_method_types: ['card']。
line_items: [
{
價格: priceId,
//對于計量收費,不要傳遞數量。
quantity: 1,
},
],
//{CHECKOUT_SESSION_ID}是一個字串字面,不要改變它!。
//當你的客戶在查詢引數中回傳實際的會話ID。
///被重定向到成功頁面。
success_url。'https://example.com/success.html?session_id={CHECKOUT_SESSION_ID}'/span>。
cancel_url: 'https://example.com/canceled.html'。
});
//重定向到結賬環節回傳的URL。
//使用Express,你可以用以下方式重定向:
res.redirect(303, session.url) 。
})
你看到回呼中的引數req和res了嗎?一個是請求,另一個是回應。如果你在控制臺記錄請求,你會看到向這個路徑發出的請求。
此外,注意到 express 已經被呼叫并分配給了 app 變數,而你是在檔案的頂部直接呼叫它。
查看 Express 檔案并通過Getting Started指南這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327652.html
標籤:
上一篇:Androi作業室的布局錯誤
下一篇:CSV到PythonDict
