【问题标题】:Stripe Payment Method using node.js使用 node.js 的条纹支付方法
【发布时间】:2022-08-13 21:43:38
【问题描述】:

我正在使用节点实现条带支付方法并表示它成功运行并返回成功消息但客户没有添加条带客户并且我的节点代码也崩溃了。我是新来的,所以学习帮助将不胜感激。

这是我的代码:

const express = require(\'express\')
const app = express()
const { stripecard } = require(\'../../schemas\')
var stripe = require(\"stripe\")(\"sk_test_51LM4hdClyoITdq3ZfTfLdVZjmLKskcWAV17Yef5fGAjKFBReC82bstJOP7VyuauMiHFVGvHgyfQdSLsfcQHTzb9w00s65S9CT6\")

const CreateCard = app.post(\'/payment\', function(req, res) {
    const {
        id,
        duration,
        cardNumber,
        expMM,
        expYY,
        cvv,
        email,
        name
    } = req.body;

    const createdUser =  stripe.customers.create({
        email: email || \'testUser@gmail.com\',
        name: name || \"123\"
    })

    //console.log(\"createdUser\", createdUser)
    if (createdUser) {
        try {
            const token =  stripe.tokens.create({
                card: {
                    number: cardNumber,
                    exp_month: expMM,
                    exp_year: expYY,
                    cvc: cvv
                }
            })
            //console.log(\"token : \", token)
            const AddingCardToUser =  stripe.customers.createSource(createdUser.id, {
                source: token.id
            })

            return res.status(201).json({
                success: true,
                AmountCharged: req.body.charge,
                message: \"Payment Charged Successfully and also a mail has been sent to User as well as Admin.\"
            });
        } catch (error) {
            return res.status(501).json({
                success: false,
                message: `Error in ${error.type} and error is :  ${error.message}`
            });
        }
    }

})
module.exports = CreateCard

这是邮递员的输出:

{
    \"success\": true,
    \"AmountCharged\": \"1200\",
    \"message\": \"Payment Charged Successfully and also a mail has been sent to User as well as Admin.\"
}
  • 在正确生成此代码时,我建议您只返回“付款成功”,因为它看起来更简洁,而且很中肯。不要向客户分享不必要的信息。
  • 您的app 指的是req.body,即undefined,除非您使用body-parser 中间件(如express.urlencoded)来填充它。

标签: javascript node.js express stripe-payments mern


【解决方案1】:

你检查过最新的文档@stripe吗?

查看“自定义付款流程”

【讨论】:

    【解决方案2】:

    您可能希望在每个 API 调用前添加 await 关键字,以便它返回 customer 对象而不是 Promise。

    我还想强调几件事。

    1. 您的密钥在本帖中泄露,您应该尽快roll it
    2. 您正在将信用卡号和详细信息直接传递给您的应用程序。除非您打算自己处理PCI compliance,否则我强烈建议您在前端标记卡详细信息,并将标记 ID 传递给后端。
    3. Sources 和 Tokens 是 Stripe 的旧 API。如果您不维护旧项目,则应使用新的 Payment IntentsSetup Intents API。

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 2017-09-14
      • 2020-04-19
      • 2020-06-01
      • 1970-01-01
      • 2020-12-30
      • 2021-12-09
      • 2021-01-21
      • 2016-10-23
      相关资源
      最近更新 更多