流星问题条纹退款(mrgalaxy:stripe)

时间:2016-05-03 20:56:12

标签: javascript meteor stripe-payments

如何使用mrgalaxy:stripe?

发出退款
Stripe.refunds.create(refund, function(err, receipt) {
  ...
});

导致Exception while simulating the effect of invoking 'rejectUserFromProject' TypeError: Cannot read property 'create' of undefined(…) TypeError: Cannot read property 'create' of undefined

我使用StripeCheckout收取费用,但无法找到退款方法:

StripeCheckout.open({
    key: _key,
    amount: fee * 100,
    currency: 'usd',
    name: 'name',
    description: 'description',
    panelLabel: 'label',
    token: function(receipt) {
      console.info(receipt);
  });

1 个答案:

答案 0 :(得分:0)

Checkout是cc事务的UX / UI模块,处理依赖于服务器端库或调用,其中身份验证包括服务器机密(即Checkout使用公钥)。

mrgalaxy:meteor包含Node.js Stripe API,但是,我并没有把时间花在上面...更好的解决方案是从那里使用API​​。

现在的黑客攻击是导入Stripe npm包和using the meteorhacks:npm package

使用Stripe dep创建了一个package.json文件,代码结束了:

if (Meteor.isServer) {
  var stripe = Meteor.npmRequire("stripe")(
    Meteor.settings.private.testSecretKey
  );

  stripe.refunds.create(returnObj, function(err, refund) {
    // asynchronously called
    if (err) {
      // handle
    };
  });
};

此外,由于代码在回调中执行,因此使用Meteor或其他基于promise的方法会出现问题,可能在父作用域中进行分配,尽管我没有尝试过因此,需要使用Fiber原样进行封装:

stripe.refunds.create({
  // ...
}, Meteor.bindEnvironment(function (err, refund) {
  // ...
}));

最后,Meteor 1.3支持npm集成,所以你不必使用任何不熟悉的东西:

if (Meteor.isServer) {
  var stripe = require("stripe")(
    Meteor.settings.private.testSecretKey
  );

  stripe.refunds.create(returnObj, function(err, refund) {
    // asynchronously called
    if (err) {
      // handle
    };
  });
};