Как передать данные из Node js, чтобы отреагировать или перенаправить страницу с сервера - PullRequest
0 голосов
/ 06 января 2020

конечная цель - перенаправить страницу оплаты на страницу успеха, но это происходит на сервере, и я получил ответ от объекта Stripe api, который я хотел бы отправить условно на интерфейс (React), чтобы я мог перенаправить страница или сделать это прямо из бэкэнда Спасибо

полоса кнопки

     <div className={styles.buttonsection}>
    <StripeCheckout 
amount={total*100}
label="Credit Card"
name="Boston Maids"
email=""
token={ (token) =>{axios.post('/api/stripe', token)}} 

stripeKey={"*********************"}


/>

сервер. js

app.post('/api/stripe', async (req, res) => {

   const charge = await stripe.charges.create({
        amount: 5000,
        currency: 'usd',
        description: 'Cleaning Services',
        source: req.body.id


    }).catch(console.error).then(charge =>{if (charge) {
     console.log(charge);

    } ```

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Я просто создаю функцию вне

```const handlerToken =  async (token, total2) => {


     const response = await axios.post("/api/stripe", {
        token,
        total2 ```



```  <StripeCheckout
                  amount={total * 100}
                  label="Credit Card"
                  name="Boston Maids"
                  email=""
                  token={handlerToken}
                  stripeKey={"*****************"}
                /> ```
0 голосов
/ 06 января 2020

Создайте новый метод для вызова внутреннего API. При успешном обратном вызове этого API установите результат в состояние и затем обработайте все, что вы хотите сделать.

Допустим, в приведенном выше примере, если вы хотите заполнить токен, установите токен из приведите в состояние и используйте this.state.token (если ваш ключ состояния - токен для токена из бэкэнда), как указано ниже:

<StripeCheckout 
amount={total*100}
label="Credit Card"
name="Boston Maids"
email=""
token={this.state.token} 
stripeKey={"pk_test_yBMj0cqYIXUsXeJ0lnVBil1T"}
/>
...