jcarlosriverae

funcion generica para MP

Jan 18th, 2022 (edited)
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.93 KB | None | 0 0
  1. import requests
  2. import json
  3. import urllib.parse
  4. import mariadb
  5. from datetime import datetime
  6. from time import sleep
  7. import csv
  8. from re import sub
  9. from decimal import Decimal
  10.  
  11. URL_BASE = "https://vitae.alquimiadigital.mx/cpanel/index.php" #"https://procesador.epica.solutions"
  12.  
  13.  
  14. def obtieneTokenAlquimia():
  15.     #url = "https://vitae.alquimiadigital.mx/cpanel/index.php/api/oauth2/token"
  16.     #payload = "grant_type=password&username=&password=&client_id=testclient&client_secret=testpass"
  17.     url = URL_BASE + "/api/oauth2/token"
  18.     #payload = "grant_type=password&username=carlos1%[email protected]&password=&client_id=testclient&client_secret=testpass"
  19.     payload = "grant_type=password&[email protected]&password=21&client_id=testclient&client_secret=testpass"
  20.     headers = {
  21.         'Content-Type': "application/x-www-form-urlencoded",
  22.         'cache-control': "no-cache"
  23.         }
  24.     response = requests.post( url, data = payload, headers = headers)      
  25.     jsonA = response.json()
  26.     return jsonA["access_token"]
  27.  
  28. def conexionBDAlquimia():
  29.     try:
  30.         conn = mariadb.connect(
  31.             user="vitaejcrivera",
  32.             password="",
  33.             host="alquimia-produccion.czyvqwotxq1n.us-east-1.rds.amazonaws.com",
  34.             port=3306,
  35.             database="alquimia_vitae"
  36.         )
  37.     except mariadb.Error as e:
  38.         print(f"Error en conexión a base de datos: {e}")
  39.         sys.exit(1)
  40.     cur = conn.cursor(dictionary = True)
  41.     return cur
  42.  
  43.  
  44. def ejecutaRequest(token, query, method, params):
  45.     url = URL_BASE + query
  46.     headers = {
  47.         'Authorization': 'Bearer '+token,
  48.         'Content-Type': "application/x-www-form-urlencoded"
  49.         }
  50.     if method == "GET":
  51.         r = requests.get(url, headers=headers)
  52.         jsonR = json.loads(r.text)
  53.     elif method == "POST":
  54.         r = requests.post(url,data=params, headers=headers)
  55.         print(r)
  56.         jsonR = json.loads(r.text)
  57.     elif method == "PUT":
  58.         r = requests.put(url,data=params, headers=headers)
  59.         jsonR = json.loads(r.text)
  60.     return jsonR
  61.  
  62.  
  63. def obtienePAE(cur, idPAE):
  64.     try:
  65.         cur.execute(
  66.             "select * from producto_ahorro_empresa where id_producto_ahorro_empresa ='"+str(idPAE)+"'"
  67.             )
  68.         dic = cur.fetchone() # almacena la respuesta de la consulta
  69.         if dic == None: # si la repuesta al realizar la consulta se redicciona como vacia en dic, no existe el registro
  70.             print('>> NO EXITE EL REGISTRO')
  71.         else: # en caso contrario se define un diccionario con los valores rediccionados de la consulta
  72.             dicProductoAhorro = {
  73.                 'nombre_producto' : dic['nombre_producto'],
  74.                 'id_producto_ahorro' : dic['id_producto_ahorro'],
  75.                 'registro_reca' : dic['registro_reca'],
  76.                 'id_empresa' : dic['id_empresa'],
  77.                 'solicitar_retiro' : dic['solicitar_retiro'],
  78.                 'rendimiento_mensual' : dic['rendimiento_mensual'],
  79.                 'porcentaje_disposicion_maxima' : dic['porcentaje_disposicion_maxima'],
  80.                 'garantia_producto_credito' : dic['garantia_producto_credito'],
  81.                 'primer_deposito' : dic['primer_deposito'],
  82.                 'comision_inscripcion' : dic['comision_inscripcion'],
  83.                 'comision_mensual' : dic['comision_mensual'],
  84.                 'tipo_persona' : dic['tipo_persona'],
  85.                 'saldo_basado_proveedor' : dic['saldo_basado_proveedor']
  86.             }
  87.             return dicProductoAhorro
  88.     except mariadb.ProgrammingError as e:
  89.         print(f"Error en consulta a base de datos: {e}")
  90.    
  91. def inicio():
  92.  
  93.     listaPAE = [
  94.        
  95.                 {
  96.                 'nombre_producto': 'DEBITO LOGTEK VISUS 03 IN 3 50 OUT',
  97.                 'id_producto_ahorro': 4,
  98.                 'registro_reca': '00987766',
  99.                 'id_empresa': 1552,
  100.                 'solicitar_retiro': 0,
  101.                 'rendimiento_mensual': 0.0,
  102.                 'porcentaje_disposicion_maxima': 0.0,
  103.                 'garantia_producto_credito': '0',
  104.                 'primer_deposito': 0,
  105.                 'comision_inscripcion': 0,
  106.                 'comision_mensual': 0,
  107.                 'tipo_persona': 1,
  108.                 'saldo_basado_proveedor': 0
  109.             }
  110.         ]
  111.  
  112.  
  113.     token = obtieneTokenAlquimia()
  114.     print(token)
  115.     #cur = conexionBDAlquimia()
  116.     #print(token)
  117.     """
  118.    for u in listaPAE:
  119.        
  120.        url = URL_BASE+"/api/v2/producto-ahorro-empresa"
  121.        print(url)
  122.        #print(u)
  123.        dicProducto = ejecutaRequest(token,"/api/v2/producto-ahorro-empresa","POST",u)
  124.        #dicProducto = obtienePAE(cur,431)
  125.        print(dicProducto)
  126.        print(".")
  127.    """
  128.  
  129.  
  130.     for idPAE in [832,833,834,835]: #DEBITO SHWAB 03 IN 3 50 OUT    DEBITO MACHT 03 IN 3 50 OUT DEBITO ASERPRO 03 IN 3 50 OUT   DEBITO ULTRA 03 IN 3 50 OUT
  131.  
  132.         print(f"=========== {idPAE} ===========")
  133.         configCuentaEjeIn = {
  134.             'tipo_producto' : 2,
  135.             'producto_id' : idPAE,
  136.             'id_medio_pago' : 2, #Cuenta Eje
  137.             'activo' : 0,
  138.             'tipo_cash' : 0,
  139.             'tipo_comision' : 2,
  140.             'valor_comision' : 0,
  141.             'monto_maximo_transacciones' : 98999999,
  142.             'numero_maximo_transacciones' : 99999,
  143.             'tipo_reseteo' : 1,
  144.             'hora_inicio' : '00:00',
  145.             'hora_fin' : '23:59',
  146.             'calendario_transaccion' : '0,1,2,3,4,5,6',
  147.             'saldo_basado_medio_pago': 0 # 0 para cuenta eje
  148.             }
  149.  
  150.         configCuentaEjeOut = {
  151.             'tipo_producto' : 2,
  152.             'producto_id' : idPAE,
  153.             'id_medio_pago' : 2, #Cuenta Eje
  154.             'activo' : 0,
  155.             'tipo_cash' : 1,
  156.             'tipo_comision' : 2,
  157.             'valor_comision' : 0,
  158.             'monto_maximo_transacciones' : 98999999,
  159.             'numero_maximo_transacciones' : 99999,
  160.             'tipo_reseteo' : 1,
  161.             'hora_inicio' : '00:00',
  162.             'hora_fin' : '23:59',
  163.             'calendario_transaccion' : '0,1,2,3,4,5,6',
  164.             'saldo_basado_medio_pago': 0 # 0 para cuenta eje
  165.             }
  166.  
  167.         configASPIn = {
  168.             'tipo_producto' : 2,
  169.             'producto_id' : idPAE,
  170.             'id_medio_pago' : 4, #ASP
  171.             'activo' : 0,
  172.             'tipo_cash' : 0, # 0 in, 1 out
  173.             'tipo_comision' : 2,# 1 fija, 2 porcentual
  174.             'valor_comision' : 0.3, #0.3%
  175.             'monto_maximo_transacciones' : 98999999,
  176.             'numero_maximo_transacciones' : 99999,
  177.             'tipo_reseteo' : 1,
  178.             'hora_inicio' : '00:00',
  179.             'hora_fin' : '23:59',
  180.             'calendario_transaccion' : '0,1,2,3,4,5,6',
  181.             'saldo_basado_medio_pago': 1 #1 para financieras
  182.            
  183.             }
  184.         configASPOut = {
  185.             'tipo_producto' : 2,
  186.             'producto_id' : idPAE,
  187.             'id_medio_pago' : 4, #ASP
  188.             'activo' : 0,
  189.             'tipo_cash' : 1, # 0 in, 1 out
  190.             'tipo_comision' : 1,# 1 fija, 2 porcentual
  191.             'valor_comision' : 3.50, #$3.50
  192.             'monto_maximo_transacciones' : 98999999,
  193.             'numero_maximo_transacciones' : 99999,
  194.             'tipo_reseteo' : 1,
  195.             'hora_inicio' : '00:00',
  196.             'hora_fin' : '23:59',
  197.             'calendario_transaccion' : '0,1,2,3,4,5,6',
  198.             'saldo_basado_medio_pago': 1 #1 para financieras                  
  199.             }
  200.  
  201.         r = ejecutaRequest(token,"/api/v2/producto-configuracion","POST",configCuentaEjeIn)
  202.         print(r)
  203.         r = ejecutaRequest(token,"/api/v2/producto-configuracion","POST",configCuentaEjeOut)
  204.         print(r)
  205.         r = ejecutaRequest(token,"/api/v2/producto-configuracion","POST",configASPIn)
  206.         print(r)        
  207.         r = ejecutaRequest(token,"/api/v2/producto-configuracion","POST",configASPOut)
  208.         print(r)
  209.        
  210.     print("bye")
  211.  
  212. inicio()
  213.  
Advertisement
Add Comment
Please, Sign In to add comment