Джанго отправляет детали заказа в Twilio
У меня есть приложение Django Saleor, которое предоставляет интернет-магазин для еды на вынос.
У меня есть функция под названием Validate_Order, которая возвращает текстовое представление заказа. Я хочу позвонить после успешного завершения процесса оформления заказа, за которым следует новая функциональность, которая позволяет мне отправлять текстовое представление на номер Twilio.
Функция Validate_Order (только для записи текстового представления в консоль браузера).
def validate_order(request):
if request.GET['id'] == str(1):
order_no = request.GET['order_id'].strip()
order_id = order_no[-3:]
Nondescript_text = "01"
Order_number = order_id
token = Order.objects.get(pk=order_id)
orders = Order.objects.confirmed().prefetch_related(
'lines__variant', 'fulfillments', 'fulfillments__lines',
'fulfillments__lines__order_line')
orders = orders.select_related(
'billing_address', 'billing_address', 'user')
order = get_object_or_404(orders, token=token.token)
# item_qty = []
# item_name = []
# item_price = []
item_desc = []
for line in order:
# item_qty.append(line.quantity)
# item_name.append(line.product_name)
# item_price.append(line.unit_price_gross.amount)
item_desc.append(str(line.quantity) + ';')
item_desc.append(line.product_name + ';')
item_desc.append(str(line.unit_price_gross.amount) + ';')
Delivery_charge = order.shipping_price.gross.amount
Credit_card_handling_fee = 0
total = order.total.gross.amount
Customer_verification_status = 4
Customer_name = order.billing_address.first_name + ' ' + order.billing_address.last_name
Customer_address = order.billing_address.street_address_1 + ' ' + order.billing_address.street_address_2 + ' ' + order.billing_address.city + ' ' + order.billing_address.postal_code + ' ' + order.billing_address.country.name
order_date_time = order.billing_address.delivery_time[:5] + ' ' + str(order.created)
previous_order = ""
order_detail = Order.objects.filter(user_email=order.user_email)
if order_detail:
previous_order = str(order_detail.count() - 1)
else:
previous_order = "0"
order_payment = Payment.objects.filter(order_id=order_id, status='confirmed')
order_payment_status = ""
if order_payment:
order_payment_status = 7
else:
order_payment_status = 6
Shipping_mthod = order.shipping_method_name
Receipt_No = ""
if "Delivery" in Shipping_mthod:
Receipt_No = "1"
else:
Receipt_No = "2"
Order_payment_method = "Card"
Mobile = order.billing_address.phone
Comments = ""
items_details = ''.join(item_desc)
printer = '*0##'+ Nondescript_text + '*' + Receipt_No + '*' + str(Order_number) + '*' + items_details + '*' + str(Delivery_charge) + '*' + str(Credit_card_handling_fee) + ';' + str(total) + ';' + str(Customer_verification_status) + ';' + Customer_name + ';' + str(Customer_address) + ';' + str(order_date_time) + ';' + previous_order + ';' + str(order_payment_status) + ';' + str(Order_payment_method) + ';' + str(Mobile) + ';*' + Comments +'#'
return JsonResponse({"data": True, "printer": printer})
else:
return JsonResponse({"data": False})
Вот пример кода Twilio о том, как вы можете отправлять данные в Twilio:
# Download the helper library from https://www.twilio.com/docs/python/install
from twilio.rest import Client
# Your Account Sid and Auth Token from twilio.com/console
account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
auth_token = 'your_auth_token'
client = Client(account_sid, auth_token)
message = client.messages.create(
body='Hello there!',
from_='+15555555555',
to='+12316851234'
)
print(message.sid)
Каков наилучший способ сделать это?
Любая помощь приветствуется.