Джанго отправляет детали заказа в 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)

Каков наилучший способ сделать это?

Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам