- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我现在正在使用 Django 开发我的网站。在将我的站点与 paypal 集成时,我使用了可插入应用程序“http://github.com/johnboxall/django-paypal”。虽然文档对“Using PayPal Payments Pro (WPP)”说的很清楚,但我还是有一些疑问,尤其是“returnurl”和“confirm_template”之间的关系。
#views.py
from paypal.pro.views import PayPalPro
def buy_my_item(request):
item = {"amt": "10.00", # amount to charge for item
"inv": "inventory", # unique tracking variable paypal
"custom": "tracking", # custom tracking variable for you
"cancelurl": "http://...", # Express checkout cancel url
"returnurl": "http://..."} # Express checkout return url
kw = {"item": item, # what you're selling
"payment_template": "payment.html", # template name for payment
"confirm_template": "confirmation.html", # template name for confirmation
"success_url": "/success/"} # redirect location after success
ppp = PayPalPro(**kw)
return ppp(request)
当点击 Paypal 网站上的“继续”按钮时,它会将我重定向回“returnurl”。这是我的问题,我不知道如何处理这个 returnurl。在我看来,我还应该写一个函数让它渲染 confirmation.html。我对吗?如果可以,这个函数怎么写。非常感谢任何帮助和指示。
最佳答案
django-paypal 的文档不是很好.简短的回答是您的 returnurl
应该是指向您的方法 buy_my_item
的任何 URL。这里有一些例子取 self 在 IRL 工作的东西。请注意,我使用 PayPal 的“useraction=commit”选项来减少其快速结帐中的步骤数。
在你的 urls.py 中:
url(r'^pay-now/', views.pay_now, name='pay_now'),
url(r'^purchase-thanks/$', views.purchase_thanks, name='pay_success'),
url(r'^purchase-cancelled/$', views.purchase_thanks, name='pay_cancel'),
在你的 views.py 中:
""" User payment method endpoint for rendering and processing forms. """
@csrf_exempt
def pay_now( request ):
# Override django-paypal library endpoints to include 'useraction=commit'
# which changed PayPal's review page to be a 'pay now' page.
# This is ugly but I didn't want to subclass.
from paypal.pro import views as pro_views
pro_views.EXPRESS_ENDPOINT = "https://www.paypal.com/webscr?cmd=_express-checkout&useraction=commit&%s"
pro_views.SANDBOX_EXPRESS_ENDPOINT = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&%s"
# ...because we use 'useraction=commit', there's no need to show the confirm page.
# So let's change the request to show the confirmation form into a request to
# approve it. It just so happens that the arguments are the same -- the difference
# is between the GET and the POST.
# <input type="hidden" name="token" value="EC-485941126E653491T" id="id_token"/>
# <input type="hidden" name="PayerID" value="78W69D3FEVWJBC" id="id_PayerID"/>
if request.method == 'GET' and 'token' in request.GET and 'PayerID' in request.GET:
request.method = 'POST'
request.POST = request.GET # Crudely convert GET to POST
item = {
'amt': 99.99, # Amount to charge for item
'currencycode': 'usd',
#'inv': 1, # Unique tracking variable paypal - must be a number.
#'desc': 'Your product name', # Deprecated by PayPal, don't bother
# (you'll get the name twice in your statement otherwise)
'custom': 'custom1', # Custom tracking variable for you. Realistically you have to pass
# this if you're specifying basket contents to PayPal as django-paypal
# won't be given `item_name` in the IPN, only `item_name1` etc.
# which it cannot interpret.
'cancelurl': 'http://%s%s' % DYNAMIC_URL, reverse('pay_cancel')), # Express checkout cancel url
'returnurl': 'http://%s%s' % (DYNAMIC_URL, reverse('pay_now')), # Express checkout return url
'allownote': 0, # Disable "special instructions for seller"
'l_name0': 'Your product name',
#'l_number0': 1234,
#'l_desc0': 'longer description',
'l_amt0': 99.99,
'l_qty0': 1,
'itemamt': 99.99,
#'taxamt': 0.00,
#'shippingamt': 0.00,
#'handlingamt': 0.00,
#'shipdiscamt': 0.00,
#'insuranceamt': 0.00,
}
kw = {
'item': item,
'payment_template': 'cms/register.html', # Template name for payment
'confirm_template': 'cms/paypal-confirmation.html', # Template name for confirmation
'success_url': reverse('pay_success'), # Ultimate return URL
}
ppp = PayPalPro(**kw)
return ppp(request)
您可能还有很多其他问题,例如“当我进入付款确认页面时,我如何区分 EC 付款和 WPP 付款?”,但我会在有人问您之前将其保存下来! django-paypal不错,但让它工作可能会非常令人沮丧,特别是当您想将附加值传递给模板时,并且文档(即使在我见过的 fork 上)也不是很好。
请注意,此示例指的是 HTTP 而不是 HTTPS URL。在生产中,使用 WPP,您几乎肯定会希望使用 HTTPS。此外,该产品的主要发行版已过时,您需要使用 @csrf_exempt
修补 IPN 端点以使其正常工作。
关于django - 如何处理paypal WPP的django-paypal中的returnurl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128543/
我正在开发“ASP.NET MVC 4”应用程序。我正在使用/学习 SimpleMembershipProvider 并尝试坚持 VS2012 使用 Internet 模板 创建的默认逻辑(如果我没记
我在 web.config 中使用 Forms 身份验证,当我将我的页面重定向到某些特定页面时,returnUrl 会自动附加并且系统重定向到登录页面。无论用户是否登录,都应打开这些特定页面。 当我在
我想使用多次参数“returnUrl”来检索 url 中的一些参数。 示例: HTTPS://force.com?positionId=a0w0X000007HjBuQAK&lang=fr&media
我已经实现了我的登录页面并且它工作正常,但我无法从包含原始请求 URL 的 ReturnUrl 查询字符串参数中读取。 例如,从该页面成功登录时: http://whatever/Login.aspx
我已经实现了我的登录页面并且它工作正常,但我无法从包含原始请求 URL 的 ReturnUrl 查询字符串参数中读取。 例如,从该页面成功登录时: http://whatever/Login.aspx
我正在尝试使用 AdaptivePayments 通过我的网站将资金从一个用户发送到另一个用户,这样我就可以检查他们是否真的完成了付款。付款成功,但它们没有返回到我的网站,所以我无法跟踪付款。 我正在
我正在尝试使用 PayPal PHP SDK 将 paypal 整合到我的网站中。一切似乎都在工作,除了在成功或失败之后返回的 url 既不包括我定义的参数也不包括 paypal 返回的参数,例如 p
总结:我想使用 returnUrl 作为交易已被 PayPal 接受的证明。 我正在实现一个基于 PayPal 的非常基本的购买工作流程。 一切正常,用户点击支付,用户转到 PayPal,PayPal
我对在用户登录的页面上使用 paypal 有疑问 是用php 如果 paypal 重定向回该页面,您如何才能让用户仍然有权访问该页面。 我读到一些关于使用 PDT 将 session_id 赋予自定义
如何在 returnUrl 中指示页面上的位置? returnUrl= HttpContext.Current.Request.RawUrl 最佳答案 您可以在 url 中包含某种类型的标签,然后
大家好,我在 main.php 配置文件中有这段代码: 'components' => array( '[.........]', 'user'=>array( //
我们正在构建一个使用 ACS 的应用程序。我们的使用场景如下: 用户通过电子邮件收到类似 https://our.application.com/?requestId=123456 的网址并点击它 用
当用户单击我的站点中需要身份验证的链接时,浏览器将重定向到登录页面。登录页面包含一个 returnUrl 查询字符串参数。问题是,如果用户使用 OpenID 进行身份验证,提供程序会将用户重定向回登录
我有一个域 http://abc.com和一个子域 http://sub.abc.com .我正在通过共享表单例份验证 cookie 在两个站点之间实现单点登录。这是通过让两个站点共享 machine
我正在通过 returnUrl = Request.Url对于 Controller 操作,问题是当我在重定向之前使用以下代码检查它时,由于 IsLocalUrl() 而失败。称呼。为什么? if (
我正在使用 ASP.NET 成员资格和表单例份验证,在重定向到 returnURL 之前我想验证它。对于那些不熟悉工作流程的人来说,基本上如果您请求一个需要您进行身份验证的页面,您将被重定向到登录页面
我已经使用 Visual Studio 使用 servicestack 实现了一个网络服务。从 vs 调试器运行服务工作得很好。我刚刚尝试使用 XSP4 将它部署到 debian 机器上。该服务使用日
我有一个使用 AngularJS 的 SPA。我刚刚添加了安全/身份验证,除了 returnUrl 登录后重定向外,一切似乎都运行良好。存在于查询字符串中。 我的应用程序中有代码,如果没有用户通过身份
这可能是一个简单的问题,但我正在努力处理查询字符串中的 returnurl。我知道如何将查询字符串中的 returnurl 调用到 Response.Redirect 但我不确定如何将 returnu
我将返回网址作为查询字符串参数发送,如下所示 http://localhost:50316/TripNestFinal/Login.aspx?ReturnUrl=~/Account/AccountSe
我是一名优秀的程序员,十分优秀!