IPN要求の検証でユニコード問題が発生しています。DjangoでのPayPal IPN検証
次の機能を使用してリクエストを確認します。
def verify(self):
parameters = self.params
parameters['cmd'] = '_notify-validate'
parameters = urllib.urlencode(dict([(k, v.encode(parameters['charset'])) for k, v in parameters.items()]))
return self.call_paypal(parameters) == 'VERIFIED'
self.parmasはrequest.POSTであり、これは次のエラーがスローされます。
UnicodeEncodeError: 'charmap' codec can't encode character u'\ufffd' in position 1: character maps to <undefined>
ポストのダンプがここで見つけることができます:http://pastebin.com/sd2iwu41
が、私はそれが奇妙なことがわかりますが私は同じエンコーディングを使用しているので、エンコーディングエラーですpaypalは私を送ります。
'parameters'はDjangoの' QueryDict'ですか?もしそうなら、あなたは 'return self.call_paypal(parameters.urlencode())'を単に行うことができます。 –
私は間違っているかもしれませんが、QueryDict読み取り専用ではありませんか? – Pickels
私は答えを投稿します。 –