2012-07-19 119 views
2

我無法使PayPal Adaptive Payments API與GAE一起工作 - 我將特意使用Implicit Payments。Paypal Sandbox和Google App Engine的身份驗證錯誤

返回的錯誤是我的api證書不正確,但是從我讀過的內容中我應該對標題格式也有所懷疑。

這裏的代碼段的 - 我用在GAE的網址抓取模塊:

headers = { 
     "X-PAYPAL-USERID"    : "xxxx_123456789_biz_api1.xxxx.com", 
     "X-PAYPAL-SECURITY-PASSWORD" : "1234567890", 
     "X-PAYPAL-SECURITY-SIGNATURE" : "Ahg-XXXXXXXXXXXXXXXXXXXXXX", 
     "X-PAYPAL-REQUEST-DATA-FORMAT" : "JSON", 
     "X-PAYPAL-RESPONSE-DATA-FORMAT" : "JSON", 
     "X-PAYPAL-APPLICATION-ID"  : "APP-80W284485P519543T" 
    } 

request_body = { 
     "actionType"      : "PAY", 
     "senderEmail"      : "[email protected]", 
     "receiverList.receiver(0).email" : "[email protected]", 
     "receiverList.receiver(0).amount" : 100.00, 
     "currencyCode"      : "USD", 
     "cancelUrl"       : "some_url.com", 
     "returnUrl"       : "some_url.com", 
     "requestEnvelope.errorLanguage"  : "en_US" 

    } 

url = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay" 

result = urlfetch.fetch(url=url,payload=request_body,headers=headers) 

我固定的一些價值觀,但我使用一切從沙盒「API憑證」現身部分。

標題格式有問題嗎?我是否使用了錯誤的憑據集?我甚至可以使用沙盒來測試隱式支付?

任何幫助,非常感謝。 謝謝!

對於任何的那些有類似的問題,按照優秀教程位於: Awesome Paypal Adaptive Payments Tutorial 的頭確實傾向於如果不能正確形成導致身份驗證錯誤。我離得很遠:)

回答

0

你忘了在urlfetch.fetch調用中設置POST方法;沒有它,the payload data is ignored

result = urlfetch.fetch(url=url, 
         payload=request_body, 
         method=urlfetch.POST, 
         headers=headers) 

在Tutorial代替switches automatically用於從GET當請求數據被設置張貼urllib2.Request

req = urllib2.Request(self.request_url,paypal_request_data,header_data) 
1

去你的頭,並作出這樣

變化的關鍵

'X-PAYPAL-USERID'

應該成爲

'X-PAYPAL-SECURITY-USERID'。