首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Webtask.io与条带一起用于React-Static

将Webtask.io与条带一起用于React-Static
EN

Stack Overflow用户
提问于 2018-06-15 01:41:55
回答 2查看 128关注 0票数 0

我正在建立一个使用React-Static的小网站。网站已全部建成,但我需要集成基本的捐赠功能。我有几个问题把我难住了。按照Thomasz的here指南,我遇到了一些障碍。

1.)当页面最初加载为html时,将创建按钮。但是,一旦react启动,它就会移除我的按钮。我想我需要通过React集成form JS,而不是当前的内联。

代码语言:javascript
复制
    <form action="WEBTASK.IO_URL" method="POST">
      <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key={my_public_stripe_key}
        data-image=""
        data-name=""
        data-description=""
        data-amount="2500"
        data-zip-code="true"
        data-currency="usd"
        data-locale="auto"
        data-panel-label="Donate"
        data-label="">
      </script>
    </form>

2.)如果我强行点击一个按钮,我就会完成最初的条纹结账,然后它就会发布到webtask.io的url上。然而,我得到了一个错误:

代码语言:javascript
复制
"code": 500,
"error": "Script generated an unhandled synchronous exception.",
"details": "TypeError: Cannot read property 'stripeToken' of undefined"

这是我的webtask.io脚本。我已经包含了NPM模块和正确的秘密。

代码语言:javascript
复制
'use latest';

import bodyParser from 'body-parser';
import stripe from 'stripe';

bodyParser.urlencoded();

module.exports = function (ctx, req, res) {
    stripe(ctx.secrets.stripeSecretKey).charges.create({
        amount: 2500,
        currency: 'usd',
        source: ctx.body.stripeToken,
        description: 'Contribute to the Campaign'
    }, function (error, charge) {
        var status = error ? 400 : 200;
        var message = error ? error.message : 'Thank You for your Contribution!'; 
        res.writeHead(status, { 'Content-Type': 'text/html' });
        return res.end('<h1>' + message + '</h1>');
    });
};
EN

回答 2

Stack Overflow用户

发布于 2018-06-15 16:06:42

尝试使用req.body.stripeToken而不是从ctx获取stripeToken

代码语言:javascript
复制
module.exports = function (ctx, req, res) {
    stripe(ctx.secrets.stripeSecretKey).charges.create({
        amount: 2500,
        currency: 'usd',
        source: req.body.stripeToken,
        description: 'Contribute to the Campaign'
    }, function (error, charge) {
        var status = error ? 400 : 200;
        var message = error ? error.message : 'Thank You for your Contribution!'; 
        res.writeHead(status, { 'Content-Type': 'text/html' });
        return res.end('<h1>' + message + '</h1>');
    });
};
票数 0
EN

Stack Overflow用户

发布于 2018-09-14 02:09:10

在导出express应用程序(而不是简单的函数)时,您将需要使用参数--meta wt-compiler=webtask-tools/express显式定义programming model (或者您可以使用webtask-tools)。

因此,最后的命令行变成:

代码语言:javascript
复制
$ wt create index.js --meta wt-compiler=webtask-tools/express
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50863125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档