Вернуть ответ от полосы API от бэкэнда на страницу - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь вернуть объект ответа, полученный от чередования после создания подписки с использованием npm.

import Stripe from 'stripe';

const key = require("stripe")("XXXXXXXXXXXXXXXXX");

export function subscribe(cus, items) {

key.subscriptions.create({
  customer: cus,
  items: items
});
}

Когда я использовал fetch (POST), я делал это:

 if (response.status >= 200 && response.status < 300) {
    // transaction successful - get charge ID
    const ret = await response.json();
    let subId = ret.id
    return {"subId": subId};
}

  // transaction failed - return error messages and codes
    let res = await response.json();
    let err = res.error.message;
    let code = res.error.code;
    let type = res.error.type;
    return {"error": err, "code": code, "type": type};
}

Но в узле я не понимаю.Мне нужно вернуть весь ответ, чтобы я мог сохранить идентификатор подписки, идентификатор клиента и т. Д.

Я пытался использовать это, но не работает, даже если подписка прошла успешно

key.subscriptions.create({
  customer: cus,
  items: items
}, function(err, subscription) {
    if (err) {
            let response = err;
            return{response};
        }
            let response = subscription;
            return{response};
        }
  }
);

1 Ответ

0 голосов
/ 02 марта 2019

Вот пример из документации Stripe API внутри функции обратного вызова, вы получите желаемый результат

var stripe = require("stripe")("sk_test_4eC39HqLyjWDarjtT1zdp7dc");

app.post('/stripe/sub', (req, res) => {

  stripe.subscriptions.create({
  customer: "cus_EcmCu9HT7EZWEH",
  items: [
    {
      plan: "emerald-company-234",
    },
  ]
}, function(err, subscription) {
    if(subscription){
        res.send(subscription)
      }
  }
);

});
...