当前位置: 首页 > news >正文

wordpress整站搬迁沂水住房与城乡建设局网站

wordpress整站搬迁,沂水住房与城乡建设局网站,wordpress相册打造的视频弹出,珠宝静态网站模板这里要准备好几个东西#xff1a; 一个支付成功过后的回调 还有一个下单的接口 一旦进入这个下单界面#xff0c;就要去调下单的接口的#xff0c;用 post, 这个 接口你自己写#xff0c;可以写在后端中#xff0c;也可以放到 nextjs 的 api 中。 首先说的是这个下单… 这里要准备好几个东西 一个支付成功过后的回调 还有一个下单的接口 一旦进入这个下单界面就要去调下单的接口的用 post, 这个 接口你自己写可以写在后端中也可以放到 nextjs 的 api 中。 首先说的是这个下单接口 可以这样写 import { NextRequest, NextResponse } from next/server; const stripe require(stripe)(process.env.STRIPE_SECRET_KEY);export async function POST(request: NextRequest) {try {const { amount } await request.json();const paymentIntent await stripe.paymentIntents.create({amount: amount,currency: usd,automatic_payment_methods: { enabled: true },});return NextResponse.json({ clientSecret: paymentIntent.client_secret });} catch (error) {console.error(Internal Error:, error);// Handle other errors (e.g., network issues, parsing errors)return NextResponse.json({ error: Internal Server Error: ${error} },{ status: 500 });} } 这个东西一般是放后端因为有个 secrets key原则 nextjs 的 api 也算是后端。 要传入的参数呢只有一个是金额一个是 secret key 返回的信息是给前端用的一个 client secret key. 可以理解为一个通用凭证。 前端怎么利用这个 key 。 const { error } await stripe.confirmPayment({elements,clientSecret,confirmParams: {return_url: http://www.localhost:3000/payment-success?amount${amount},},});这个 elements 是 stripe 自带的要利用到里面的一些组件比如你开了 wechat 就要自动显示。 而不是自己写页面。 clientSecret 这个 client key 就是从后端返回的。 大约就是这样简单最后这个 return url 中的。 我不太清楚这样的话还需要 webhook 吗还需要去验证。 整个表单的代码我放一下 use client;import React, { useEffect, useState } from react; import {useStripe,useElements,PaymentElement, } from stripe/react-stripe-js; import convertToSubcurrency from /lib/convertToSubcurrency;const CheckoutPage ({ amount }: { amount: number }) {const stripe useStripe();const elements useElements();const [errorMessage, setErrorMessage] useStatestring();const [clientSecret, setClientSecret] useState();const [loading, setLoading] useState(false);useEffect(() {fetch(/api/create-payment-intent, {method: POST,headers: {Content-Type: application/json,},body: JSON.stringify({ amount: convertToSubcurrency(amount) }),}).then((res) res.json()).then((data) setClientSecret(data.clientSecret));}, [amount]);const handleSubmit async (event: React.FormEventHTMLFormElement) {event.preventDefault();setLoading(true);if (!stripe || !elements) {return;}const { error: submitError } await elements.submit();if (submitError) {setErrorMessage(submitError.message);setLoading(false);return;}const { error } await stripe.confirmPayment({elements,clientSecret,confirmParams: {return_url: http://www.localhost:3000/payment-success?amount${amount},},});if (error) {// This point is only reached if theres an immediate error when// confirming the payment. Show the error to your customer (for example, payment details incomplete)setErrorMessage(error.message);} else {// The payment UI automatically closes with a success animation.// Your customer is redirected to your return_url.}setLoading(false);};if (!clientSecret || !stripe || !elements) {return (div classNameflex items-center justify-centerdivclassNameinline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-whiterolestatusspan className!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]Loading.../span/div/div);}return (form onSubmit{handleSubmit} classNamebg-white p-2 rounded-md{clientSecret PaymentElement /}{errorMessage div{errorMessage}/div}buttondisabled{!stripe || loading}classNametext-white w-full p-5 bg-black mt-2 rounded-md font-bold disabled:opacity-50 disabled:animate-pulse{!loading ? Pay $${amount} : Processing...}/button/form); };export default CheckoutPage;
http://www.w-s-a.com/news/783008/

相关文章:

  • 网站策划怎么做内容旅游型网站建设
  • 东莞百度网站推广ppt模板免费下载的网站
  • 网站建设项目管理基本要求网站空间到期影响
  • 做奖杯的企业网站谁有推荐的网址
  • wordpress能做企业站吗wordpress收发邮件
  • 电子产品网站建设策划方案腾讯企业邮箱注册申请免费
  • 哪些网站可以免费做代码自己电脑做网站服务器广域网访问
  • 高端网站设计青海省教育厅门户网站学籍查询
  • 长春网站优化公司网站制作400哪家好
  • 县级门户网站建设的报告开发游戏的软件有哪些
  • 做电子商务的网站wordpress带会员中心
  • 网站域名不变网站可以从做吗网站建设步骤 文档
  • 网站建设中 gif互联网新项目在哪里找
  • 做外包网站猎头公司英文
  • 房屋结构自建设计 网站海淀教育互动平台
  • 网络营销比赛 营销型网站策划热门搜索关键词
  • 网站建设图片代码网络设计师工资
  • 福建网站开发适合交换友情链接的是
  • 企业门户网站建站内乡微网站开发
  • 在线做logo印章网站一般到哪个网站找数据库
  • 哪些网站做免费送东西的广告6郑州人流医院哪家好
  • 高端做网站哪家好sem技术培训
  • 网站做等保是按照什么定级别的做网站的资源哪里找
  • 免费建站网页无需登陆潍坊高端模板建站
  • 北京php网站建设软通动力外包值得去吗
  • 优酷 做视频网站还能成功吗光谷做网站推广哪家好
  • 培训学校网站建设方案网站开发方案设计
  • 网站开发分支结构外贸网站做推广
  • 海南省城乡建设厅网站首页济南网站建设百家号
  • wordpress 图片命名吗北京seo优化哪家公司好