使用wix代码创建订阅站点。我不断收到400个未知参数:源错误。 (/ subscripton)
如果您能找到我要去哪里的地方,将不胜感激。谢谢!
import { fetch } from 'wix-fetch';
export async function subscription(token, item) {
const cart = item;
const apiKey = "PRIVATEAPI";
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(token, cart)
});
if (response.status >= 200 && response.status < 300) {
const ret = await response.json();
return { "chargeId": ret.id };
}
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 };
}
function encodeBody(token, cart) {
let encoded = "";
for (let [k, v] of Object.entries(cart)) {
encoded = encoded.concat(k, "=", encodeURI(v), "&");
}
encoded = encoded.concat("source=", encodeURI(token));
return encoded;
}
答案 0 :(得分:0)
欢迎使用StackOverflow!
您似乎正在创建订阅。根据API文档:https://stripe.com/docs/api/subscriptions/create?lang=ruby
在Stripe上创建订阅时, customer
是必需的参数。您需要首先创建一个客户,将标记化的卡作为来源附加到客户。然后,您可以通过传递customer: customer.id
此外,此请求是否在客户端发出?使用您的秘密API密钥发出的请求应从您的服务器端代码发出,最好使用Stripe的API库:https://stripe.com/docs/libraries
由于您正在使用订阅,因此您还应该研究新版本的Stripe Checkout(https://stripe.com/docs/payments/checkout),它允许使用仅包含几行代码的客户端代码来创建订阅!
答案 1 :(得分:-1)
您可能会在调用encodeBody(token, cart)
时传递您不希望使用的其他键。
根据https://stripe.com/docs/api/subscriptions/create上的文档,您应验证在token
和cart
中传递的密钥均有效。