javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

javascript-流星:在s上正确使用Meteor.wrapAsync

背景

我正在尝试将条纹付款集成到我的网站中。 我需要使用我的专用条纹密钥创建一个条纹用户。 我将此密钥存储在服务器上,并调用服务器方法来创建用户。 也许还有另一种方法可以做到这一点? 这是条纹API(为方便起见,在下面复制):[https://stripe.com/docs/api/node#create_customer]

//stripe api call
var Stripe = StripeAPI('my_secret_key');

Stripe.customers.create({
  description: 'Customer for test@example.com',
  card: "foobar" // obtained with Stripe.js
}, function(err, customer) {
  // asynchronously called
});

我的尝试和结果

我一直在使用相同的客户端代码和不同的服务器代码。 所有尝试都会立即在客户端的console.log(...)上给出undefined,但在服务器的console.log(...)上给出正确的响应:

//client
Meteor.call('stripeCreateUser', options, function(err, result) {
  console.log(err, result);
});

//server attempt 1
var Stripe = StripeAPI('my_secret_key');

Meteor.methods({
    stripeCreateUser: function(options) {  
        return Meteor.wrapAsync(Stripe.customers.create({
            description: 'Woot! A new customer!',
            card: options.ccToken,
            plan: options.pricingPlan
        }, function (err, res) {
            console.log(res, err);
            return (res || err);
        }));
    }
});

//server attempt 2
var Stripe = StripeAPI('my_secret_key');

Meteor.methods({
    stripeCreateUser: function(options) {  
        return Meteor.wrapAsync(Stripe.customers.create({
            description: 'Woot! A new customer!',
            card: options.ccToken,
            plan: options.pricingPlan
        }));
    }
});

我也尝试了没有Meteor.wrapAsync的情况。

编辑-我也在使用这个包:[https://atmospherejs.com/mrgalaxy/stripe]

trans by 2020-02-04T07:01:26Z

支付网关-Stripe-如何使用免费计划来处理订阅,并且在注册时不需要信用卡

我们开始在Redsmin上实现Stripe(我们的项目之一),我认为我们可能错过了一些东西。 下面是它的工作原理:

  1. 要使用我们的产品,用户必须选择一个计划(免费,s,m,xl,xxl ...),然后输入其登录名/密码,然后可以免费试用30天。 当用户提交表单时,我们的服务器将使用指定的计划并且不使用信用卡来调用Stripe create_customer(因为我们希望免费提供30天而无需使用信用卡),并且我们将返回的customer_idcustomer.subscription.updated更新为我们这一侧的用户模型 。

  2. 我们设置了一个Webhook来接收条纹事件,因此30天后,我们的Webhook应该会收到一个2562070208328500500224事件和一个charge.succeeded事件。对吗?

  3. 但是,由于我们没有在注册时为用户指定关联的卡,因此在另一个customer.subscription.updated事件和charge.succeeded事件发生后,我们应该很快收到,对吗? 然后,在我们这一边,我们停用用户帐户,并强制其转到我们的计划选择页面。

  4. 从那时起,用户可以选择免费计划或我们的高级计划之一:

  5. #Scenario 1如果用户选择了免费计划,我们只是在我们这边重新激活其帐户,而没有做任何其他事情,因为我们在stripe上配置了免费计划,费用为0 $。 我们是否通过免费计划实施了正确的流程? 有更好的方法吗?

  6. #方案2如果用户选择了一个高级计划,我们会将其重定向到信用卡表格,然后将其发送到Stripe,并使用临时卡令牌更新Stripe客户帐户。 接下来我们该怎么做?

    • 我们应该等待条纹发送事件给我们吗? 如果是这样,发生什么情况? customer.subscription.updatedcharge.succeededobject.status的值是多少?
    • 我们应该直接在我们这边重新激活用户帐户并等待条纹确认吗? 如果是这样,我们应该等待什么事件名称和数据?

trans by 2019-10-09T19:24:07Z

1 共1页