为了账号安全,请及时绑定邮箱和手机立即绑定

如何将Stripe付款网关与Django Oscar集成?

如何将Stripe付款网关与Django Oscar集成?

温温酱 2021-04-06 17:15:38
我正在尝试将Stripe付款网关与Django oscar集成到一个电子商务站点上,该站点在线销售杂货,我使用python 3.6.3,Django 2.0,Django-oscar 1.6,stripe 1.82.2。方法1:因此,我在django-oscar组中关注了此链接:https://groups.google.com/forum/#!searchin/django-oscar/handle_payment$20override%7Csort:date/django-oscar/Cr8sBI0GBu0/PHRdXX2uFQAJ我已经注册了条带帐户,并使用我的可发布密钥和测试密钥来配置条带。问题是,当我尝试使用标签为“用卡付款”提供的按钮进行付款时,它会收集我的卡信息,然后当我单击该按钮,它显示“有些钱将从卡中扣除”,如下图所示:“预览”页面的图像然后,在我单击下订单按钮后,它向我显示了此信息: 确认页面的图像虽然我已经用我的卡付款了。我想奥斯卡似乎还不知道这笔付款已经通过条纹完成了,但是我不确定如何解决。方法2:我尝试使用dj-stripe,在这里找到:https://github.com/dj-stripe/dj-stripe但是我在https://dj-stripe.readthedocs.io/en/stable-1.0/上阅读了整个文档 ,似乎我只能将其用于需要订阅的产品,我不需要订阅,而文档dj-stripe尚未完全完成。我尝试了django-oscar官方 仓库,链接在这里:https : //github.com/django-oscar/django-oscar-stripe,该存储库已有五年历史,我认为它不兼容与我的Django oscar版本一起使用。方法3:我尝试使用stripe.js和elements并创建了我的表单来接受卡片:在我的python views.py文件中,我创建了条带电荷和源。@csrf_exemptdef stripe_payment(request):    user = request.user    source_id = request.POST.get("stripeSource", None)    amount = request.POST.get("amt", None)    stripe.api_key = "your_test_key"    customer = stripe.Customer.create(        email=email,        source=source_id,    )    # print("Customer ID: ", customer['id'])    amt = float(amount) * 100    # print("Amount:", int(amt))    int_amt = int(amt)    charge = stripe.Charge.create(        amount=int_amt,        currency='cad',        customer=customer['id'],        source=source_id,    )     return HttpResponseRedirect("/checkout/preview/")然后,我在条纹仪表板中创建了一个Webhook,并将其链接到我的本地URL,每次通过Web钩子发送来自Stripe的响应时,此URL都会被命中。@csrf_exemptdef demo_checkout(request):    # Retrieve the request's body and parse it as JSON:    event_json = json.dumps(json.loads(request.body), indent=4)    # event_json = json.loads(request.body)到目前为止,我可以从仪表板上跟踪各种事件或日志,以及诸如创建客户,进行收费以及通过网络挂钩发送响应之类的事件都可以,但是我不知道该如何完成付款,这样Django-oscar也可以知道付款已经完成,并且不显示“不需要付款”: 谢谢页面我已经尝试了所有这些方法,但是仍然无法使用。我愿意使用建议的任何其他方法,或者对到目前为止介绍的任何方法所做的改进。我是django-oscar的新手并给出一些代码和一些解释的答案将是有帮助的。
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

我找到了一种将Stripe与Django Oscar集成的方法,这是实现它的简单方法之一。

  1. 首先从以下位置创建一个带区帐户:https : //stripe.com/,您将获得一个可发布的密钥和一个私钥,您可以在登录到开发人员> API密钥下的带区显示板后查看它们。

  2. 在您的django oscar代码方面。从oscar分支出结帐应用程序,将其添加到INSTALLED_APPS + = get_core_apps(['checkout'])。要了解如何派生应用程序,可以从docs中访问此链接:https : //django-oscar.readthedocs.io/ zh_CN / latest / topics / customisation.html#fork-oscar-app

  3. 在结帐下创建一个名为facade.py的文件,将仪表板中的密钥复制到settings.py文件中,然后按照此链接中的建议进行其他更改:在django oscar组上进行条带化支付网关集成,只是标题错误只需遵循整个页面就可以了。


查看完整回答
反对 回复 2021-04-27
  • 2 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号