第一次搞 stripe支付,国外的文档全英文
接stripe支付,根据官方文档,首先就是先跟服务端交互,创建session会话,获取id,当服务端不做这个功能时,就需要前端去掉stripe最底层的api,拿到session_id,这时候懵逼了,找吧文档都有
官网正常对接服务端的接支付流程:点击
创建session会话最底层的api,服务端不对接,需要前端去自己对接,点击
这里只是我接触过的,有错误指出来,一起学习,第一次搞这玩意,记录下来,也为后期别的童鞋,让他们少走点弯路
接通后是这样,拿这个id
调用
https://api.stripe/v1/checkout/sessions
这个底层接口,它是post
application/x-www-form-urlencoded
请求,所以在传参数的时候,需要处理一下参数,我用的qs
处理了一下,它是curl请求,第一个-u 参数,我理解的是加密需要权限,需要在请求头里添加Authorization
,它的格式要求加Bearer 你的秘钥
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Authorization:
"Bearer sk_testxxxx秘钥",
},
只传文档的参数,是不行的,格式必须要按照它的格式,这里是我最终的参数和格式
var params = {
success_url: "https://example/success",
cancel_url: "https://example/cancel",
"line_items[0][amount]": 999,
"line_items[0][currency]": "usd",
"payment_method_types[0]": "card",
"line_items[0][name]": "你的用户名",//这里你需要去后台关联一个用户名
"line_items[0][quantity]": 2,
mode: "payment",
};
完整的一个请求创建session会话
onClick_test() {
const stripe = Stripe(
"pk_test_xxxx你的其中一个秘钥"
);
var params = {
success_url: "https://example/success",
cancel_url: "https://example/cancel",
"line_items[0][amount]": 999,
"line_items[0][currency]": "usd",
"payment_method_types[0]": "card",
"line_items[0][name]": "你的用户名",
"line_items[0][quantity]": 2,
mode: "payment",
};
Axios.post(
"https://api.stripe/v1/checkout/sessions",
qs.stringify(params),
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Authorization:
"Bearer sk_test_xxxxxx",
},
}
).then((res) => {
let {data,status}=res;
console.log(res, "返回值===========");
});
},
更多推荐
前端对接stripe支付,创建测试session_is
发布评论