如何通过代码[REACT,STRIPE]填写StripeCheckout的shippingAddress和&billingAddress

如何解决如何通过代码[REACT,STRIPE]填写StripeCheckout的shippingAddress和&billingAddress

因此,我想使用存储在cookie中的数据来填充带条帐单和付款地址的条带结帐模式,因为希望设置默认送货和帐单地址的登录用户不必在每次购买时都填写字段。

这是我在react中的条纹结帐代码:

import React,{useState,useEffect,useContext} from 'react'
import {FlexRow,LightParagraph,Border,RawLink,Card} from '../../../Style/global'
/** @jsx jsx */
import { jsx,css } from '@emotion/core'
import {CartContext} from '../../../Context/CartProvider'
import StripeCheckout from 'react-stripe-checkout'
import axios from 'axios'

const CheckoutPayment=(props)=> {
    const {method}=props
    const [productsToProcces,setproductsToProcces] = useState([])
    const {cart} = useContext(CartContext)


    useEffect(() => {
         setproductsToProcces(cart.map(item=>({ title:item.itemName,price:item.itemPrice,quantity:item.quantity,images:item.images})))
    },[])


    const handelToken=async(token)=>{
        try {
            const stripeResponse =await  axios.post('http://localhost:4000/stripe/checkout',{
                token,product:{
                  products:products.map(p=>p.title),amount:products.map(item=>item.price * item.quantity).reduce((a,b)=> a + b,0)*100
                }
            })
        } catch (error) {
            console.log(error)
        }
       
    }

    return (
        <div>
            <Card >
               <FlexRow no100={true} justify="space-between" css={css`padding:1rem;`}  >
                  <LightParagraph size={.8} mgb={0} css={css`width:100px;`}>Contact</LightParagraph>
                  <LightParagraph size={.8} mgb={0}>sad_fatah@outlook.com</LightParagraph>
                  <RawLink to="checkout/information" >Change</RawLink>
               </FlexRow>

               <Border css={css`margin-bottom:0;`} />
               <FlexRow no100={true} justify="space-between" css={css`padding:1rem;`}  >
                    <LightParagraph size={.8} mgb={0} css={css`width:100px;`}>Contact</LightParagraph>
                    <LightParagraph size={.8} mgb={0}>ASKJALKSLASA,ASASA,4500 OUARZAZATE,Morocco</LightParagraph>
                    <RawLink to="checkout/information" >Change</RawLink>
               </FlexRow>

               <Border css={css`margin-bottom:0;`} />
               <FlexRow no100={true} justify="space-between"  css={css`padding:1rem;`} >
                    <LightParagraph size={.8} mgb={0} css={css`width:100px;`} >Method</LightParagraph>
                    <LightParagraph size={.8} mgb={0} >
                         {method || 'DHL Express '} 
                         <span   css={css`${styles.bill__total};${styles.smallMoney}`}>$100.37</span>
                    </LightParagraph>
                    <RawLink to="checkout/information" >Change</RawLink>
               </FlexRow>
            </Card>

            <FlexRow >
               <RawLink to="/checkout/information" size={1}><i className="fas fa-angle-left iconeB"></i> Return to shipping</RawLink>
               <StripeCheckout 
                 stripeKey='pk_test_51HCsVhLkAIHmcekiVfb5aSOF75eJPLKwn7MhbxmQKMVtJrworoCsyNL8Otxs0cdcFYjKMpjejHzChey00DlIkW8b007nxn9KYC'
                 token={handelToken}
                 billingAddress
                 shippingAddress
                 amount={productsToProcces.map(item=>item.price * item.quantity).reduce((a,0)*100}
               />   
           </FlexRow>
        </div>
    )
}

const styles ={
    smallMoney :css` 
    font-size: .9rem;
    color: var(--colorGreyDark);
    `,bill__total :css` 
    font-weight: 600;
    `,}

export default CheckoutPayment

enter image description here

解决方法

无法在Stripe的旧版Checkout中预先填写帐单或送货地址。如您所见,您正在使用的库仅分别接受const Discord = require("discord.js"); const config = require("../config.json"); const mysqlconfig = require("../mysqlconfig.json"); const path = require('path'); const fs = require('fs'); const date = new Date(); const day = date.getDate(); const month = date.getMonth(); var mysql = require('mysql'); const { release } = require("os"); module.exports.run = async (bot,message,args) => { var con = mysql.createPool({ host: mysqlconfig.host,user: mysqlconfig.user,password: mysqlconfig.password,database: mysqlconfig.database,port: 3306 }); var sql = `SELECT * FROM money WHERE userID = '${message.author.id}'` con.query(sql,async function (err,results,userID,balance,fields,rows) { let data = results.map(v => { //console.log(v.userID) if(message.author.id = v.userID) { // checks if message.author.id is equal to any id in the database message.channel.send(`You have **${v.balance}** YeetCoins!`) return v.balance } else { // if not it should add the id and also add 100 coins var sql1 = `INSERT INTO balance (userID,balance) VALUES (?,?) ON DUPLICATE KEY UPDATE userID=VALUES(userID)` con.query(sql1,[message.author.id,'100'],function (err,result,userID) { }); message.channel.send(`added 100 coins to <@${message.author.id}>'s balance!`) } }) }) } module.exports.help = { name: "balance",category: "User" } billingAddress道具的布尔值:

https://github.com/azmenak/react-stripe-checkout/blob/master/StripeCheckout.js#L153-L159

我会考虑使用Stripe较新的Checkout产品,该产品会自动为您显示/隐藏帐单邮寄地址字段:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-