API POST to stripe работает только с внешнего интерфейса вместо lambda

#api #lambda #request #stripe-payments

#API #лямбда #запрос #stripe-платежи

Вопрос:

Я хочу опубликовать в stripe API, используя библиотеку запросов, и мой код успешен только тогда, когда я публикую через интерфейс моего приложения (что я делал только в целях тестирования). Очевидно, я хочу сделать это через lambda, чтобы я мог использовать свой ключ stripe API в серверной части в целях безопасности. Вот мой внешний код:

 await request({
                        url: 'https://api.stripe.com/v1/customers?email='   currentSessionEmail   "amp;description="   sessionUsername,
                        method: 'POST',
                        headers: {
                        'Authorization': 'Bearer my_key4534343432',
                          'Accept': 'application/json',
                          'Content-Type': 'application/x-www-form-urlencoded',
                          'Access-Control-Allow-Origin': "*",
                          "Access-Control-Allow-Credentials": true
                        },
                        }, function (error, response, body) {
                        if (!error amp;amp; response.statusCode == 200) {
                          console.log('BODY: ', body);
                          //var jsonResponse = JSON.parse(body); // turn response into JSON
        
                          // do stuff with the response and pass it to the callback...
                          //console.log(JSON.stringify(response));
        
                        }else{
                          alert(error);
                        }
                      }); 
  

Моя лямбда-функция содержит тот же код внутри нее, и она разрешается с 200 помощью, но она не выполняет Stripe API должным образом, иначе я бы увидел клиента, созданного на моей панели инструментов stripe, что не так.

Комментарии:

1. вы console.log также должны указать свой URL-адрес и запрос. Возможно, это не одно и то же. В частности, возможно, ваша лямбда не видит те же значения url , что и body ваша основная функция. Кроме того, не вкладывайте слишком много в код состояния 200. Это не обязательно означает, что в Stripe все прошло хорошо. Помните, что они не хотят предоставлять хакерам слишком много информации.

Ответ №1:

Вы не хотите отправлять этот POST-запрос с внешнего интерфейса, поскольку для этого требуется ваш секретный ключ. Вероятно, вы захотите использовать https://github.com/stripe/stripe-node в вашей лямбда-функции, чтобы это произошло на стороне сервера.