Яндекс деньги

feature/fix_generate_pass
Andrey 8 years ago
parent e11e60aaab
commit dad77389d6
  1. 11
      finance/serializers.py
  2. 3
      finance/signals.py
  3. 16
      finance/tasks.py

@ -1,6 +1,6 @@
from rest_framework import serializers from rest_framework import serializers
from finance.models import Bill, Invoice, Payment from finance.models import Bill, Invoice
class BillSerializer(serializers.ModelSerializer): class BillSerializer(serializers.ModelSerializer):
@ -24,11 +24,4 @@ class InvoiceSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Invoice model = Invoice
exclude = ('bill', ) exclude = ('bill', )
class PaymentSerializer(serializers.ModelSerializer):
class Meta:
model = Payment
exclude = '__all__'

@ -3,11 +3,10 @@ from django.db.models.signals import pre_save
from django.dispatch import receiver from django.dispatch import receiver
from finance.models import Invoice from finance.models import Invoice
from finance.serializers import PaymentSerializer
@receiver(pre_save, sender=Invoice) @receiver(pre_save, sender=Invoice)
def delete_dependencies(instance, **kwargs): def delete_dependencies(instance, **kwargs):
"""Отправка сообщения после сохранения платежа""" """Отправка сообщения после сохранения платежа"""
if instance.yandex_pay and instance.method == 'Y' and instance.status == 'P': if instance.yandex_pay and instance.method == 'Y' and instance.status == 'P':
send_to_yandex.delay(PaymentSerializer(instance.yandex_pay).data) send_to_yandex.delay(**instance.yandex_pay.__dict__)

@ -5,20 +5,20 @@ from django.core.mail import send_mail
@shared_task @shared_task
def send_to_yandex(pay): def send_to_yandex(**pay):
r = requests.post('https://money.yandex.ru/eshop.xml', data={ r = requests.post('https://money.yandex.ru/eshop.xml', data={
'shopId': pay.shop_id, 'shopId': pay['shop_id'],
'scid': pay.scid, 'scid': pay['scid'],
'sum': pay.order_amount, 'sum': pay['order_amount'],
'customerNumber': pay.customer_number, 'customerNumber': pay['customer_number'],
'orderNumber': pay.order_number, 'orderNumber': pay['order_number'],
'cps_email': pay.cps_email, 'cps_email': pay['cps_email'],
}) })
body = { body = {
"subject": 'Спасибо за регистрацию', "subject": 'Спасибо за регистрацию',
"message": '''Вам выставлен счёт, для оплаты перейдите по ссылке %s''' % r.url, "message": '''Вам выставлен счёт, для оплаты перейдите по ссылке %s''' % r.url,
"from_email": 'robo@skillbox.ru', "from_email": 'robo@skillbox.ru',
"recipient_list": [pay.cps_email], "recipient_list": [pay['cps_email']],
} }
send_mail( send_mail(

Loading…
Cancel
Save