【问题标题】:Translate javascript POST request into Axios (using Stripe)将 javascript POST 请求翻译成 Axios(使用 Stripe)
【发布时间】:2019-03-04 10:37:11
【问题描述】:

我正在 React.js 上使用 Stripe(开发支付系统),我正在尝试将以下代码转换为 React.js 并使用 axios 创建从后端(Django)接收 POST 请求的端点:

var handler = StripeCheckout.configure({
  key: 'pk_test_zNq2YI8Spsyi81TknNujN36T',
  image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
  locale: 'auto',
  token: function(token) {
    $.ajax({
      type: "POST",
      url: 'http://localhost:8000/subscriptions/codes/pay/',
      data: {amount: amount, token: token},
    });
  }
});

我被困在此链接的第 4 步:Stripe for React,它解释了 POST 请求,但他们使用的是 Express,而我使用的是 Django。

【问题讨论】:

    标签: javascript django reactjs stripe-payments axios


    【解决方案1】:

    服务器端代码可以用任何语言/框架编写,只要它为您的前端帖子提供端点subscriptions/codes/pay/

    Django,您可以参考 [0] 处的文档了解如何开始创建 REST API

    一个非常简单的代码

    定义你的路线

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
        path('subscriptions/checkout', views.ElementView.as_view(), name="Stripe Checkout"),
        path('subscriptions/codes/pay', views.charge, name='charge'),
    ]
    

    在你的视图定义中

    from django.http import HttpResponse
    from django.views.decorators.http import require_http_methods
    from django.views.decorators.csrf import csrf_exempt
    
    @require_http_methods(["POST"])
    @csrf_exempt
    def charge(request):
        # request.body will contain your data {amount: amount, token: token}
        return HttpResponse(request.body)
    

    同样,后端实现应该与语言/框架无关;只要您的后端提供有效的POST API 允许您将 StripeToken 发回,它就可以工作

    [0]https://docs.djangoproject.com/en/2.1/intro/tutorial01/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-26
      • 2020-06-16
      • 2022-07-12
      相关资源
      最近更新 更多