首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建费用时出现node.js / Swift /条带/ Webtask错误

创建费用时出现node.js / Swift /条带/ Webtask错误
EN

Stack Overflow用户
提问于 2016-11-24 12:30:56
回答 1查看 188关注 0票数 0

我正在尝试使用node.js从Webtask服务器上创建一个到条纹的费用。下面是在Swift (IOS)中发送令牌的函数:

代码语言:javascript
复制
    func createBackendChargeWithToken(_ token: STPToken, completion: @escaping STPTokenSubmissionHandler) {
            if backendChargeURLString != "" {
                if let url = URL(string: backendChargeURLString  + "/payment")         {
                    let chargeParams : [String: AnyObject] = ["stripeToken": token.tokenId as AnyObject, "amount": shirtPrice as AnyObject]

                    Alamofire.request(url, method: .post, parameters: chargeParams, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in

                        switch(response.result) {
                        case .success(_):
                            if response.result.value != nil{
                                print(response.result.value!)
                            }
                            break

                        case .failure(_):
                            print(response.result.error!)
                            break

                        }
                    }
                }
            }
            completion(STPBackendChargeResult.failure, NSError(domain: StripeDomain, code: 50, userInfo: [NSLocalizedDescriptionKey: "You created a token! Its value is \(token.tokenId). Now configure your backend to   accept this token and complete a charge."]))
        }

这是使用node.js通过网络任务实现的后端代码

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

    import express from 'express';
    import { fromExpress } from 'webtask-tools';
    import bodyParser from 'body-parser';
    import stripe from 'stripe';

    var app = express();
    app.use(bodyParser.json());

    app.post('/payment', (req,res) => {
      var ctx = req.webtaskContext;
      var STRIPE_SECRET_KEY = ctx.secrets.STRIPE_SECRET_KEY;

      stripe(STRIPE_SECRET_KEY).charges.create({
        amount: ctx.data.amount,
        currency: ctx.data.currency,
        source: ctx.body.stripeToken,
        description: ctx.data.description
      }, (err, charge) => {
        const status = err ? 400 : 200;
        const message = err ? err.message : 'Payment done!';
        res.writeHead(status, { 'Content-Type': 'text/html' });
        return res.end('<h1>' + message + '</h1>');
      });
    });

这是我在Xcode中得到的错误:

代码语言:javascript
复制
    You created a token! Its value is Optional("tok_19JEqjJGxqjWew1nNeyvAHto").
    Now configure your backend to accept this token and complete a charge.
    {
        code = 400;
        error = "Supplied code must return or export a function.";
        message = "Invalid webtask code";
    }
EN

回答 1

Stack Overflow用户

发布于 2016-12-23 22:50:56

使用ctx.body.amount而不是ctx.data.amount

代码语言:javascript
复制
// .. other code

stripe(STRIPE_SECRET_KEY).charges.create({
  amount: ctx.data.amount, // <- you should be using ctx.body.amount
  currency: ctx.data.currency,
  source: ctx.body.stripeToken,
  description: ctx.data.description
}, (err, charge) => {

// .. other code
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40778079

复制
相关文章

相似问题

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