PayPal を使用して簡単なオンライン決済システムを実装しようとしていますが、知っていることはすべて試しましたが、まだ INVALID 応答が返されます。
IPN シミュレーターを使用すると VERIFIED 応答が得られるため、単純すぎることはありません。最初にアイテムをdictに入れようとしましたが、エンコーディングを修正しようとしましたが、まだ何もしていません。PayPal によると、INVALID 応答の理由として次のことが考えられます。
- 間違ったアイテムまたは間違った順序で送信する (これではないことは確かです)
- 間違ったアドレスに送信する (間違いなくこれではありません)
- アイテムのエンコーディングが間違っています (これだとは思いません。ペイパルと私のスクリプトの両方でエンコーディングを UTF-8 に設定してください)
以下は、関連するスニペットです。
f = cgi.FieldStorage()
newparams = 'cmd=_notify-validate'
for key in f.keys():
val = f[key].value
newparams += '&' + urlencode({key: val.encode('utf-8')})
req = urllib2.Request(PP_URL, newparams)
req.add_header("Content-type", "application/x-www-form-urlencoded")
http = urllib2.urlopen(req)
ret = http.read()
fi.write(ret + '\n')
if ret == 'VERIFIED':
#*do stuff*