Я пытаюсь отправить многоплановый запрос на подписку в Stripe API.Однако у меня есть массив, подобный этому
0: {"plan":"plan_EaDE7UnYYcicOj","quantity":"2"}
1: {"plan":"plan_EbOzfXj7R9hcdz","quantity":"2"}
Я хочу преобразовать его в формат, в котором его хочет Stripe, который выглядит так:
curl https://api.stripe.com/v1/subscriptions \
-u sk_test_XXXXXXXXXXXXXXXXXX: \
-d customer=cus_4fdAW5ftNQow1a \
-d items[0][plan]=plan_CBXbz9i7AIOTzr \
-d items[0][quantity]=2
-d items[1][plan]=plan_IFuCu48Snc02bc \
-d items[1][quantity]=2
Я используюметод извлечения, как показано ниже
const response = await fetch("https://api.stripe.com/v1/subscriptions", {
method: 'post',
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "Bearer " + apiKey
},
body: encodeBody(customerId, items) //problem here
});
Я пытался закодировать массив в правильный формат, но каждый раз, когда я получаю [Object Object] и идентификатор клиента объединяются из-за encode.concat
function encodeBody(customerId, items){
let encoded = "";
for (let [k, v] of Object.entries(items)) {
encoded = encoded.concat(k,"=", encodeURI(v), "&");
}
encoded = encoded.concat("customer", encodeURI(customerId));
return encoded;
}
Я новичок в использовании функции кодирования, поэтому не понимаю, что делать.