【问题标题】:Extracting Express Checkout Tokens提取快速结帐令牌
【发布时间】:2011-01-10 10:19:13
【问题描述】:

说到 PayPal,我完全是新手,所以,如果在其他地方得到回答,我很抱歉。我已在包括此处在内的多个位置进行了检查,但找不到任何信息。

我想将 paypal 与 python 集成。

我的问题是我正在尝试在电子商务网站中实施 Express Checkout。我正在开发一种使用沙盒的虚拟测试站点来尝试让它工作。作为参考,我一直在使用https://cms.paypal.com/cms_content/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf

第 6 章作为如何执行此操作的指南。

我现在的情况是,我已经完成了所有工作,直到我需要在成功调用 PayPal API 后提取令牌。本质上,我在浏览器中收到一条消息,看起来像

TIMESTAMP=2007%2d04%2d05T23%3a23%3a07Z
&CORRELATIONID=63cdac0b67b50
&ACK=Success
&VERSION=52%2e000000
&BUILD=1%2e0006
&TOKEN=EC%2d1NK66318YB717835M 

首先,如何从消息中提取 ACK 和 TOKEN 值?我可以使用Request.QueryString["TOKEN"] 之类的东西提取隐藏查询字符串的这些部分吗?

从技术上讲,我需要做的就是提取并检查 ACK 是否成功,否则会出现错误重定向回来。如果成功,我需要提取令牌并继续使用贝宝并最终重定向到我的订单审核页面。

如何提取令牌?

如何从该页面重定向浏览器? (我正在处理尚未上传的本地副本。

对不起,文字墙。请让我知道是否有人有我可以查看的任何其他资源,或者您对我有任何建议或解决方案。

【问题讨论】:

    标签: python paypal


    【解决方案1】:

    我很抱歉。我没有尝试就直接回答。以下是实际可行的方法。

    from cgi import parse_qs
    ...
    
    redirect_url_template = 'https://www.paypal.com/webscr?cmd=_ap-payment&paykey='
    
    ...
    
    parsed_response = parse_qs(response.content)
    ack = parsed_response['responseEnvelope.ack'][0]
    if ack and ack == 'Success':
        url = redirect_url_template + parsed_response['payKey'][0]
    

    这只是一个示例,您需要在 KeyError 和类似的事情上放置一个 try catch 以确保安全。

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 1970-01-01
      • 2015-05-09
      • 2014-12-07
      • 2013-03-05
      • 2017-11-22
      • 2013-03-14
      • 1970-01-01
      • 2011-08-10
      相关资源
      最近更新 更多