Masalah meteor Pengembalian dana Stripe (mrgalaxy:stripe)

Bagaimana cara melakukan pengembalian dana dengan mrgalaxy:stripe?

Stripe.refunds.create(refund, function(err, receipt) {
  ...
});

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

Saya menggunakan StripeCheckout untuk tagihan, dan tidak dapat menemukan apakah ada metode pengembalian dana untuk itu:

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

person aug2uag    schedule 03.05.2016    source sumber


Jawaban (1)


Checkout adalah modul UX/UI untuk transaksi cc, dan penanganannya bergantung pada perpustakaan atau panggilan sisi server, di mana otentikasi menyertakan rahasia server (yaitu Checkout menggunakan kunci publik).

mrgalaxy:meteor menyertakan API Node.js Stripe, namun saya tidak menghabiskan waktu saya dengan baik.. solusi yang lebih baik adalah menggunakan API dari sana.

Peretasan yang dilakukan saat ini adalah mengimpor paket Stripe npm, dan menggunakan paket meteorhacks:npm.

Membuat file package.json dengan dep Stripe, dan kode akhirnya terlihat:

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

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

Selain itu, karena kode dijalankan dalam panggilan balik, akan ada masalah saat menggunakan metode berbasis janji Meteor atau metode lain, mungkin ditetapkan dalam cakupan induk meskipun saya tidak mencobanya, jadi ada kebutuhan untuk merangkum dengan Fiber apa adanya:

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

Terakhir, Meteor 1.3 mendukung integrasi npm sehingga Anda tidak perlu menggunakan sesuatu yang asing:

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

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