首页 > 解决方案 > 将 fetch 转换为 ajax 以用于条带集成

问题描述

我在移动谷歌浏览器上获取问题。我想尝试将其转换为 ajax。我将它用于 php 中的条带实现。这是我使用 fetch 所做的:

  var createCheckoutSession = function(planId) {
    var plan = {
          plan_id: planId
      };
  
      var data = new FormData();
 // we call the create my session page by providing a Plan ID which in turn will return a session object whose ID will be useful later on to redirect to checkout.
      data.append( "plan", JSON.stringify( plan ) );
    return fetch("/create-my-session", {
      method: "POST",
      body: data
    }).then(function(result) {
      console.log(result);
      return result.json();
    });
  };

在创建我的会话页面我有这个代码:

$stripeService = new StripeService();
    $plan = json_decode($_POST["plan"]);
    $planId = $plan->plan_id;
    $session  = $stripeService->createCheckoutSession($planId);
    echo json_encode($session);
    

上面的代码在单击此按钮时执行:

   $('#subscribe').on('click',function(e){ 
        createCheckoutSession(MyChosenPlanID).then(function(data) {
          stripe.redirectToCheckout({
      //we redirect the user to a checkout page hosted by stripe that uses the session ID returned above
          sessionId: data.id
          }).then(handleResult);
        });
          });

到目前为止,我在转换为 ajax 方面所做的工作:

 var createCheckoutSession = function(planId) {
    var plan = {
          plan_id: planId
      };
  
      var datastream = new FormData();
      datastream.append( "plan", JSON.stringify( plan ) );

     $.ajax({

      type: "POST",
      url: "/create-my-session",
      data: {
        'info': datastream,
    },
      dataType: 'json',
      success: function(data){
          
          var sessionobj = data;
          
      },
      error:function(response)
      {
          console.log("Data sending failed");
          console.log(response);
      }
  });
     
    
    return sessionobj ;
    }).then(function(result) {
      console.log(result);
      return result.json();
    });
  };

我保持一切原样。

标签: javascriptphpfetchstripe-payments

解决方案


推荐阅读