我有一个在线商店,用户可以互相付款购买东西,我一直在使用沙箱帐户对其进行测试,但我认为它不起作用。我实在不明白问题出在哪里这是我的观点.py:def payment_process(request, trade_id): trade = get_object_or_404(Trade, id=trade_id) host = request.get_host() paypal_dict = { 'business': trade.seller.email, 'amount': Decimal(trade.price), 'item_name': trade.filename, 'invoice': str(trade.id), 'currency_code': 'USD', 'notify_url': 'https://{}{}'.format(host, reverse('paypal-ipn')), 'return_url': 'https://{}{}/{}'.format(host, *reverse('payment_done', kwargs={'trade_id': trade.id})), 'cancel_return': 'https://{}{}'.format(host, reverse('home')), } form = PayPalPaymentsForm(initial=paypal_dict) return render(request, 'payment/payment_process.html', {'trade': trade, 'form': form})@csrf_exemptdef payment_done(request, trade_id): # Do some very important stuff after paying ... # It would be really nice if someone can help me with a checker messages.success(request, 'Your product is in your inbox now') return redirect('trade:inbox')我的网址.py:urlpatterns = [ path('admin/', admin.site.urls), ... # Prodbox Payment path('payment/process/<int:trade_id>/', payment_views.payment_process, name="payment_process"), path('payment/done/<int:trade_id>/', payment_views.payment_done, name="payment_done"), # Prodbox packages path('paypal/', include('paypal.standard.ipn.urls')),]完成付款后将用户重定向到 payment_done 视图非常重要(如果我有一个检查器在运行完成功能之前检查付款是否完成,那就太好了)另请注意,我强调用户使用他们的 PayPal 电子邮件帐户那么为什么它不起作用?
1 回答
![?](http://img1.sycdn.imooc.com/54586453000163bd02200220-100-100.jpg)
千巷猫影
TA贡献1829条经验 获得超7个赞
您说它不起作用,但没有提供有关问题行为及其不起作用的原因的信息。
但我认为这并不重要,因为您使用了一个糟糕的集成(django-paypal,基于支付标准)来实现您想要的付款人返回“非常非常重要”的行为。
您应该切换到的集成是集成 v2/checkout/orders,无论是否带有 Checkout-Python-SDK。您的服务器上需要两条路线,一条用于“设置交易”,一条用于“捕获交易”,记录如下: https: //developer.paypal.com/docs/checkout/reference/server-integration/
用于审批的最佳前端 UI 如下: https: //developer.paypal.com/demo/checkout/#/pattern/server。在一个独立的 HTML 文件中让它运行良好,该文件调用 2 个 django 后端路由(通过 fetch),然后将其作为前端集成到 django 模板和结账流程中。
对于用户向另一个用户付款的功能,请使用payee
此处记录的对象: https: //developer.paypal.com/docs/checkout/integration-features/pay-another-account/
添加回答
举报
0/150
提交
取消