如何从python GAE中的PayPal沙箱上线?

时间:2012-01-02 07:34:51

标签: google-app-engine paypal python-2.7 paypal-sandbox

我可以run and test my application in sandbox mod使用google app engine example provided by paypal。现在,我想启用实时模式,以便在沙箱模式工作时测试真实付款。我在www.x.com上注册了PayPal应用程序,并填写了以下详细信息: enter image description here

我的商家设置如下: enter image description here

这些设置看起来可以在实时模式下工作但似乎我有一些设置错误,因为我在尝试激活实时模式时收到错误消息:

ERROR    2012-01-02 07:29:49,973 webapp2.py:1528] 'payKey'
Traceback (most recent call last):
  File "/media/Lexar/montao/bnano-www/webapp2.py", line 1511, in __call__
    rv = self.handle_exception(request, response, e)
  File "/media/Lexar/montao/bnano-www/webapp2.py", line 1505, in __call__
    rv = self.router.dispatch(request, response)
  File "/media/Lexar/montao/bnano-www/webapp2.py", line 1253, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/media/Lexar/montao/bnano-www/webapp2.py", line 1077, in __call__
    return handler.dispatch()
  File "/media/Lexar/montao/bnano-www/webapp2.py", line 547, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/media/Lexar/montao/bnano-www/webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "/media/Lexar/montao/bnano-www/handler.py", line 531, in post
    (ok, pay) = self.start_purchase(item)
  File "/media/Lexar/montao/bnano-www/handler.py", line 570, in start_purchase
    purchase.paykey = pay.paykey()
  File "/media/Lexar/montao/bnano-www/paypal.py", line 81, in paykey
    return self.response['payKey']
KeyError: 'payKey'
INFO     2012-01-02 07:29:49,985 recording.py:372] Saved; key: __appstats__:088300, part: 132 bytes, full: 17070 bytes, overhead: 0.000 + 0.005; link: http://localhost:8080/_ah/stats/details?time=1325489388311
INFO     2012-01-02 07:29:50,015 dev_appserver.py:2753] "POST /buy/ag1kZXZ-Ym5hbm8td3d3cgsLEgRJdGVtGJwCDA/ HTTP/1.1" 500 -

可能相关的代码部分是

  def paykey( self ):
    return self.response['payKey']

当然这没什么用,所以我应该在哪里看?当我将其更改为以下内容时,我的settings.py是否正确:

# settings for app

#PAYPAL_ENDPOINT = 'https://svcs.sandbox.paypal.com/AdaptivePayments/' # sandbox
PAYPAL_ENDPOINT = 'https://svcs.paypal.com/AdaptivePayments/' # production

#PAYPAL_PAYMENT_HOST = 'https://www.sandbox.paypal.com/au/cgi-bin/webscr' # sandbox
PAYPAL_PAYMENT_HOST = 'https://www.paypal.com/webscr' # production

PAYPAL_USERID = 'niklasro@gmail.com'#'niklas_1224389428_biz_api1.eddaconsult.se'
PAYPAL_PASSWORD = '<my-paypal-password>'#'13344842639'
PAYPAL_SIGNATURE = 'Al6HBBNk4bKFht2fR-p2FlAb2YAJFKl5p2MzHpo.QKYewU2btYPIm.'
PAYPAL_APPLICATION_ID = 'APP-9F666043V7920644G'#'APP-80W284485P519543T' # live 
PAYPAL_EMAIL = 'niklasro@gmail.com'#'niklas@eddaconsult.se'

PAYPAL_COMMISSION = 0.2 # 20%

USE_CHAIN = False
USE_IPN = False
USE_EMBEDDED = False
SHIPPING = False # not yet working properly; PayPal bug

# EMBEDDED_ENDPOINT = 'https://paypal.com/webapps/adaptivepayment/flow/pay'
EMBEDDED_ENDPOINT = 'https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay'

API_ID = '8byQd46LwexZ'
TRANSACTION_KEY = '3a578UZJXnh6Aa25'

我的错误消息可能来自哪个其他想法?

由于

1 个答案:

答案 0 :(得分:1)

无法获得payKey。这会失败,因为您使用了错误的凭据:

PAYPAL_USERID = 'niklasro@gmail.com'#'niklas_1224389428_biz_api1.eddaconsult.se' PAYPAL_PASSWORD = '<my-paypal-password>'#'13344842639'

将其更改为使用您的API用户名和API密码。