API Python cho PHP

Tôi muốn thực thi tập lệnh python này (API Python). * Tôi có một biểu mẫu với phương thức POST và nút gửi; . * Khi người dùng viết tham số này và nhấp vào nút, tôi muốn chuyển tham số này vào tập lệnh của mình trong python và thực thi nó

Đây là mã php của tôi


Đây là kịch bản của tôi. py

# encoding=utf-8
import base64
import ssl
import subprocess

from OpenSSL import crypto
import requests


API_PREFIX = 'https://b.listo.mx/api/invoicing'
API_TOKEN = 'Aasdfadsf'
RFC_ID = 6690
PRIVATE_KEY_PASSPHRASE = '12345678a'


generation_data = [{
    "folio": "415",
    "issued_at": "Mike Van",
    "issued_on": "2016-08-18T03:04:00.000Z",
    "issuer": {
        "colony": sys.argv[1],
        "country": sys.argv[2],
        "email_from": "[email protected]",
        "email_subject": "Tu factura",
        "employer_num": "WWWW",
        "ext_num": "123",
        "int_num": "234",
        "id": RFC_ID,
        "locality": "",
        "municipio": "Mike",
        "postal_code": "00000",
        "reference": None,
        "rfc": " ",
        "rfc_name": "Services",
        "state": "Mike",
        "street": "Re",
        "tax_regime": "pm"
    },
    "items": [
        {
            "description": "Examen IV",
            "quantity": "1.000000",
            "unitary_amount": "123.000000",
            "unitary_amount_with_iva": "142.680000",
            "units": "MX"
        },
        {
            "description": "Certificación I",
            "quantity": "2.000000",
            "unitary_amount": "234.560000",
            "unitary_amount_with_iva": "272.089600",
            "units": "MX"
        }
    ],
    "payment_form": u"Pay",
    "payment_method": "04",
    "payment_method_acct_num": "9876",
    "receiver": {
        "colonia": "P",
        "country": u"M",
        "ext_num": "123",
        "int_num": "456",
        "issuer_rfc": 10,
        "locality": u"M",
        "municipio": "Mike",
        "postal_code": "00000",
        "reference": None,
        "rfc": "TT",
        "rfc_name": "ABC SA de CV",
        "state": u"Mike",
        "street": "Re"
    },
    "series": "A",
    "subtotal": "592.120000",
    "taxes": [
        {"amount": "94.739200", "tax_rate": "16.000000", "tax_type": "IVA", "treatment": "pass_through"}
    ],
    "total": "686.859200"
}]

r = requests.post('https://b.listo.mx/api/invoicing/generate_xml', json=generation_data,
                  headers={'Authorization': 'Token %s' % API_TOKEN}, verify=True)

response = r.json()[0]
xml, original_chain = response['xml'], response['original_chain']

print '-' * 80
print r.json()

# Cargar certificado y llave privada (Firma)
with open('test.cer') as f:
    cert_der = f.read()
    cert = crypto.load_certificate(crypto.FILETYPE_PEM, ssl.DER_cert_to_PEM_cert(cert_der))

with open('test.key') as f:
    private_key_der = f.read()

args = ['openssl', 'pkcs8', '-inform', 'DER', '-passin', 'pass:' + PRIVATE_KEY_PASSPHRASE]
proc = subprocess.Popen(args, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
private_pem = proc.communicate(input=private_key_der)[0].strip()
key = crypto.load_privatekey(crypto.FILETYPE_PEM, private_pem)

# Timbrado
signature = crypto.sign(key, original_chain, 'sha1')
print "Cadena original = %s" % original_chain
print "Sello = %s" % base64.b64encode(signature)
crypto.verify(cert, signature, original_chain, 'sha1')


certification_data = {
    'xml': xml,
    'certificate_num': ('%0x' % cert.get_serial_number())[1::2],
    'certificate': base64.b64encode(cert_der),
    'signature': base64.b64encode(signature),
    'data': generation_data[0]
}

r = requests.post('%s/certify_xml' % API_PREFIX, json=certification_data,
                  headers={'Authorization': 'Token %s' % API_TOKEN}, verify=False)

#{Aquí me dará el id y el xml tanto url como pdf}
print '-' * 80
print r.json()

Như các bạn thấy mình đã thử lấy các thông số trong python như thế này

thuộc địa. hệ thống. argv[1], quốc gia. hệ thống. đối số [2],

Tôi có một số lỗi với sys. argv[2] (Chỉ mục không xác định) và yêu cầu nhập

python shell php php7 php-thư viện python3 php-python php8 php-shell php74 python-php sử dụng-python-in-php python-in-php python-and-php

  • Cập nhật ngày 3 tháng 2 năm 2021
  • PHP

bullsoft / PHPython

Sao 15

  • Mã số
  • Vấn đề
  • Yêu cầu kéo

PHPython. Phần mở rộng cho mã eval python3 trong PHP

php php-extension python3 cpp11 php-cpp pybind11 phppython php-python phpython

  • Cập nhật15/03/2019
  • C++

TravelXML / REST-API-VỚI-PYTHON-PHP-NODEJS-GO-DJANGO-LARAVEL-LUMEN-Ví dụ

Sao 10

  • Mã số
  • Vấn đề
  • Yêu cầu kéo

Tạo API REST với hầu hết các công nghệ thịnh hành - PYTHON, PHP, GO, NodeJS và các Framework thịnh hành như Laravel, GIN, Flask, DJANGO. Bạn CHỈ mất 5 phút để tạo API REST. Hướng dẫn API REST

nodejs python api golang jar laravel django php7 json-api rest-api php-framework rest-framework frameworks lumen-api php-python rest-api-example rest-apis rest-api-framework xu hướng-công nghệ

Làm cách nào để gọi API Python trong PHP?

Để gọi tệp Python từ bên trong tệp PHP, bạn cần gọi tệp đó bằng hàm shell_exec .

Python có thể tích hợp với PHP không?

Tạo API cho tập lệnh Python mà tập lệnh PHP của bạn (hoặc bất kỳ tập lệnh nào khác) có thể sử dụng . Kết xuất đầu vào của bạn vào một thư mục mà tập lệnh Python theo dõi dữ liệu, sau đó ghi kết quả vào hệ thống tệp nơi bạn có thể đọc và hiển thị nó bằng PHP.

Tôi có thể sử dụng PHP cho API không?

Giao diện lập trình ứng dụng hoặc API, xác định các lớp, phương thức, hàm và biến mà ứng dụng của bạn sẽ cần gọi để thực hiện tác vụ mong muốn. Trong trường hợp các ứng dụng PHP cần giao tiếp với cơ sở dữ liệu, các API cần thiết thường được hiển thị thông qua các tiện ích mở rộng PHP .

Tôi có thể sử dụng Python cho API không?

Trong Python bạn chỉ cần một dòng mã để thực hiện lệnh gọi API cơ bản, điều này được thực hiện với hàm yêu cầu get() . Nhìn vào mã bên dưới, bạn có thể thấy quy trình đó trông như thế nào. Dòng mã này sử dụng thư viện yêu cầu để truy cập chức năng get, sau đó gọi URL của mục tiêu của bạn.