前端对接stripe支付,创建测试session_is

第一次搞 stripe支付,国外的文档全英文


接stripe支付,根据官方文档,首先就是先跟服务端交互,创建session会话,获取id,当服务端不做这个功能时,就需要前端去掉stripe最底层的api,拿到session_id,这时候懵逼了,找吧文档都有


官网正常对接服务端的接支付流程:点击


创建session会话最底层的api,服务端不对接,需要前端去自己对接,点击


这里只是我接触过的,有错误指出来,一起学习,第一次搞这玩意,记录下来,也为后期别的童鞋,让他们少走点弯路


接通后是这样,拿这个id
在这里插入图片描述

调用 https://api.stripe.com/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.com/success",
        cancel_url: "https://example.com/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.com/success",
        cancel_url: "https://example.com/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.com/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, "返回值===========");
      });
    },

猜你喜欢

转载自blog.csdn.net/sxs7970/article/details/117130344