request() получил неожиданный аргумент ключевого слова 'customer'
Реализовал бритву, получил вышеуказанную ошибку. Мне нужно создать нового клиента в API razorpay. Невозможно получить клиента, как говорится, ошибка не может получить клиента.
from django.db import models
from customers.models import Customer
from django.db.models.signals import post_save,pre_save
import razorpay
client = razorpay.Client(auth=("", ""))
class BillingProfile(models.Model):
customer = models.OneToOneField(Customer,null=True,blank=True)
inserted = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
b_customer_id = models.CharField(max_length=120,null=True,blank=True)
def __str__(self):
return self.customer.name
def billing_profile_recieved(sender,instance,*args,**kwargs):
if not instance.b_customer_id and instance.customer:
print(instance.id,"OOOOOOOOOOOOOOOOOOOoo")
print(client,"------------------------------")
customer = client.customer.create(customer=instance.id) //_______ ERROR
print(customer)
pre_save.connect(billing_profile_recieved,sender=BillingProfile)
def user_created_reciever(sender,instance,created,*args,**kwargs):
if created:
BillingProfile.objects.get_or_create(customer=instance)
print(instance.user_customer,client)
post_save.connect(user_created_reciever, sender=Customer)
2 ответа
name = instance.customer.name
email = instance.customer.user_customer.email
contact = instance.customer.phone_no
if not instance.b_customer_id and instance.customer:
try:
customer = client.customer.create( {
"name" : name,
"email" : email,
"contact" : contact,
"notes": {}
}
)
instance.b_customer_id = customer["id"]
except Exception as e:
print(e)
pre_save.connect(billing_profile_recieved,sender=BillingProfile)
Это способ, которым я должен был передать данные. Этот формат был интегрирован в их API.
Может быть потому, что пользователь с электронной почтой уже существует. Вы можете передать дополнительный параметр с именем "fail_existing": "0". Тогда customer_id будет возвращен. Если существующего клиента нет, он создаст нового клиента и вернет customer_id.
тело должно быть примерно таким:
{
"name" : "Cornelius123",
"email" : "cornelius19901@gmail.com",
"contact" : "+919000000000",
"fail_existing":"0",
"notes": {}
}
[![enter image description here][1]][1]