【发布时间】:2021-12-27 11:13:56
【问题描述】:
我有一些问题。请帮帮我
- 有没有什么方法可以集成支付网关 (
Paypal&Stripe),而无需通过他们的 API 发送登录信息和其他信息来重定向他们的网站。如果可以的话,你能举个清楚的例子吗?
如果不可能,那么我的第二个问题
- 如何在我的网站中集成
paypal(我多次使用条带,但我还没有使用贝宝)。在这里我看到Paypal rest sdk可用。问题是我正在使用两个库来创建我的网站。- 在后端 - 我正在使用
express、graphql、apollo server express - 在前端 - 我正在使用
next js
- 在后端 - 我正在使用
那我应该在哪里集成 PayPal?
我有一个想法,我不确定它是否正确?我可以在我的后端应用程序中添加Paypal Rest Sdk。在这里,这个包为我创建了结帐并创建了会话 ID。 (我从条纹中得到这个想法)。然后我必须将会话 ID 发送到前端(创建 next js)。在前端接收该会话 ID 并重定向到 PayPal 网站进行付款。我可以在后端使用paypal rest sdk。但我不知道如何使用前端的结帐 ID 重定向到 PayPal 网站。这里有人请帮助我。
附加信息-
这是条带示例。
在后台 -
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY)
//Here I use stripe sdk
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
success_url: input.successUrl,
cancel_url: input.calcenlUrl,
customer_email: reqUserInfo.email,
client_reference_id: input.room,
metadata: {checkInDate, checkOutDate, daysOfStay},
line_items: [
{
name: room.name,
images: [`${room.images[0].url}`],
amount: input.amountPaid * 100,
currency: 'usd',
quantity: 1
}
]
})
return {
message: "You will be redirected shortly!",
id: session.id // sending session id to frontend application
}
在前端-
import {loadStripe} from "@stripe/stripe-js";
let stripePromise;
const getStripe = () => {
if (!stripePromise) {
stripePromise = loadStripe(process.env.STRIPE_API_KEY)
}
return stripePromise;
}
export default getStripe;
最后是 OnClicking 支付按钮
axios.post("./", data)
.then (res=> {
const stripe = await getStripe();
stripe.redirectToCheckout({ sessionId: res.data.data.stripeCheckOut.id});
}
但我不知道 PayPal。请帮帮我?
我的第三个问题是
- 成功付款后,有什么方法可以在我的后端 API 中点击发布请求。我可以使用网络钩子。我多次使用条纹 webhook。但是有没有其他办法?
高级谢谢。
【问题讨论】:
标签: express paypal next.js stripe-payments payment-gateway