Я успешно интегрировал django-paypal в режиме песочницы вместе с настройками отладки Django.Мои платежи завершены, и срабатывают сигналы, прикрепленные к valid_ipn_received.
Когда я перехожу в живой режим PayPal, платежи также принимаются, но я больше не получаю никаких сигналов.Вот код, который обычно запускает PayPal IPN:
class StoreItemView(SomeUserCheckMixin, SomeAjaxMixin, View):
# …some business logic…
paypal_dict = {
'business': settings.PAYPAL_RECEIVER_EMAIL,
'item_name': 'my item',
'amount': '20',
'discount_amount': '10',
'currency_code': 'USD',
'invoice': generate_uuid_as_string(),
'payment_date': timezone.now().strftime('%H:%M:%S %b %d, %Y') + ' CET',
'lc': 'FR',
'bn': 'SomeCompany_BuyNow_WPS_FR',
'email': request.user.email,
'first_name': request.user.first_name,
'last_name': request.user.last_name,
'address1': request.user.profile.adress.street,
'address2': request.user.profile.adress.extension,
'zip': request.user.profile.adress.zip,
'city': request.user.profile.adress.city,
'country': 'FR',
'night_phone_a': '33',
'night_phone_b': request.user.profile.phone_number,
'notify_url': notify_url,
'return': return_url,
'cancel_return': cancel_return_url,
'custom': request.user.username + _separateur + str(cible),
}
return render(request, self.template_name, {
'form': PayPalPaymentsForm(initial = paypal_dict)
})
# After my functions to hook to the Following signals
valid_ipn_received.connect(store_check_transaction)
invalid_ipn_received.connect(store_alert_bad_transaction)
Мои настройки конфигурации установлены таким образом, что ADMINS содержит письма для предупреждения в случае возникновения каких-либо ошибок, некоторые сообщения регистрации должны появиться в моем настраиваемом регистраторе (и я знаю этоработает для других операций на моем веб-сайте), и мои настройки PayPal установлены так:
# In debug mode:
ALLOWED_HOSTS = ['localhost', '.paypal.com', 'paypal.com.']
PAYPAL_TEST = True
PAYPAL_RECEIVER_EMAIL = 'somemail-facilitator@somecompany.fr'
PAYPAL_BUY_BUTTON_IMAGE = 'https://www.somecompany.fr/static/media/pay.png'
# …and in production / live mode:
ALLOWED_HOSTS = ['.somecompany.fr', '123.234.34.56', 'paypal.com.', 'paypal.com.']
PAYPAL_TEST = False
PAYPAL_RECEIVER_EMAIL = someemail@somecompany.fr'
Ничего о сигнале не появляется.Что я упустил?Есть ли способ проверить, где заканчиваются мои вызовы IPN?На панели инструментов разработчика PayPal я ничего не нашел.
Обновление: я получаю эту ошибку подтверждения, но только в режиме реального времени.
AssertionError: Invalid Content-Type - PayPal is only expected to use application/x-www-form-urlencoded. If using django's test Client, set `content_type` explicitly
Я знаю, что вместо этого он получает json.Это нормально?