El plugin premium de Redsys que podéis encontrar en WooCommerce.com, incorpora una API propia que la podéis utilizar desde cualquier otro plugin o tema para WordPress. Esto facilita la vida a los desarrolladores y les da herramientas para que puedan exprimir sus ideas basándose en el plugin premium y Redsys.
La función mágica creada, es WCRed() y a través de ella se puede conseguir mucha información, y que irá aumentando en las nuevas versiones.
WCRed()->get_order( $order_id );
Se utiliza para conseguir $order
WCRed()->get_ds_error();
Devuelve un Array() con todos los errores DS y lo que son.
WCRed()->get_ds_response();
Devuelve un Array() con todas los códigos de respuesta DS y lo que significan.
WCRed()->get_msg_error();
Devuelve un Array() con todos los errores msg y lo que significan.
WCRed()->is_ds_error( $error_code = null );
Se debe pasar el error, y te devuelve true o false dependiendo si es un error DS o no lo es.
WCRed()->is_ds_response( $error_code = null );
Se debe pasar el mensaje, y te devuelve true o false dependiendo si es una respuesta DS o no lo es.
WCRed()->is_msg_error( $error_code = null );
Se debe pasar el msg, y te devuelve true o false dependiendo si es un error msg o no lo es.
WCRed()->get_msg_error_by_code( $error_code = null );
Se debe pasar el mensaje, y te devuelve lo que significa si es un error msg. Si no lo es, devuelve false.
WCRed()->get_error_by_code( $error_code = null );
Se debe pasar el error DS, y te devuelve lo que significa si es un error DS. Si no lo es, devuelve false.
WCRed()->get_response_by_code( $error_code = null );
Se debe pasar la respuesta DS, y te devuelve lo que significa si es un mensaje DS. Si no lo es, devuelve false.
WCRed()->is_redsys_error( $error_code = null );
Se pasa el error o rspuesta, y te devuelve true o false dependiendo si es un error de Redsys o no lo es.
WCRed()->get_error( $error_code = null );
Se le pasa el error DS, el error msg o la respuesta DS, y te devuelve lo que significa. No hace falta specificar que es. Si no es nada de lo anterior, devuelve false.
WCRed()->get_error_type( $error_code = null );
Se pasa el error, y devuelve el tipo que es:
- ds_error
- ds_response
- msg_error
WCRed()->get_currencies();
Devuelve un Array() con todas las monedas de Redsys y sus códigos.
WCRed()->allowed_currencies();
Devuelve un Array() con las monedas permitidas en Redsys. Que estén permitidas, no quiere decir que estén activas en el terminal.
WCRed()->get_redsys_languages();
Devuelve una array con los idiomas y si código. Los idiomas no son código, es decir, por ejemplo en el Array() está Español, English – Inglés, Català, Français – Frances, y cada uno relacionado con su código en Redsys.
WCRed()->get_redsys_wp_languages();
Devuelve un Array() con con todos los códigos de idiomas de WordPress, relacionados con el código en Redsys.
WCRed()->get_orders_type();
Devuelve un Array() con las diferentes formas de pago de Redsys posibles mediante el plugin.
WCRed()->get_lang_code( $lang = 'en' );
Se le pasa el código de idiomas, y devuelve el código de este en Redsys. Se le puede pasar tanto código estandarizado (es, fr, en, etc), cómo código de WordPress (es_ES, ca, en_US, en, en_GB).
Si el idioma no existe en Redsys, devolverá siempre «2», que es el código para el inglés.
WCRed()->order_exist( $order_id );
Se le pasa el ID del pedido, y te dice si existe el pedido devuelve true o false.
WCRed()->post_exist( $post_id );
Se le pasa el ID del $POST, y te dice si existe. Ojo, puede ser cualquier Post, Post Type o Custom Post Type, solo te dice si existe.
WCRed()->is_redsys_order( $order_id, $type = null );
Se le puede pasar un parámetro, o dos. Si se le pasa solo el primer parámetro (el ID del pedido), te dirá si el pedido se ha realizado mediante Redsys en cualquiera de las formas de pago que añade el plugin devolviendo true o false. Si se pasa junto al segundo parámetro, responderá true o false, dependiendo se se ha realizado el pago mediante este tipo de de pago específico.
Los valores posibles para $type son:
- redsys
- masterpass
- redsysbank
- bizumredsys
- iupay
- insite
- redsyspreauthorizations
WCRed()->get_gateway( $order_id );
Se le pasa el ID del pedido, y te devuelve el ID de la pasarela con la que se ha pagado. Si el ID de pedido no existe, devuelve false.
WCRed()->get_order_date( $order_id );
Se le pasa el ID del pedido, y devuelve la fecha de pago en Redsys. Si no hay fecha, o no es un pago de Redsys, devuelve false.
WCRed()->get_order_hour( $order_id );
Se le pasa el ID del pedido, y devuelve la la hora de pago en Redsys. Si no hay hora, o no es un pago de Redsys, devuelve false.
WCRed()->get_order_auth( $order_id );
Se le pasa el ID del pedido, y devuelve la código de autentificación del pago en Redsys. Si no hay código, o no es un pago de Redsys, devuelve false.
WCRed()->get_status_pending();
Devuelve un Array() con los estados posibles de pendiente de pago que añade el plugin de Redsys y WooCommerce
apply_filters( 'redsys_status_pending', $status );
Este filtro que se encuentra dentro de WCRed()->get_status_pending() sirve para que se puedan añadir fácilmente más estado si fuera necesario y que la función WCRed()->get_status_pending() devuelva los estados pendientes correctos.
WCRed()->is_paid( $order_id );
Se le pasa el ID del pedido, y te dice si está pagado o no lo está.
WCRed()->get_redsys_option( $option, $gateway );
Se le debe pasar la opción que se quiere saber, y el ID de la pasarela (se la que sea). Devuelve el valor de la opción.
WCRed()->is_gateway_enabled( $gateway );
Se le pasa el ID de la pasarela, y devuelve true o false dependiendo si existe y está activada o no.
WCRed()->check_if_token_is_valid( $token_id );
Comprueba si un token con el ID $token_id es valido (comprueba la fecha de caducidad de la tarjeta). Si es válido devuelve «true», si no es válido (fecha caducada), lo elimina y devuelve false.
WCRed()->get_redsys_users_token();
Devuelve el token de Redsys del usuario identificado en el sitio.
WCRed()->get_users_token_bulk( $user_id );
Devuelve el token de un usuario por ID. Se le debe pasar el valor $user_id.
WCRed()->prepare_order_number( $order_id );
Prepara el número de pedido para ser enviado a Redsys.
WCRed()->clean_order_number( $ordernumber );
Convierte el número de pedido enviado a Redsys al número de WooCommerce.
WCRed()->redsys_amount_format( $total );
Convierte el total a pagar en formato de Redsys.
WCRed()->set_txnid( $token_num, $redsys_txnid );
Guarda el código TXNID. Se le debe pasar el token al que lo queremos relacionar y el TXNID.
WCRed()->get_txnid( $token_num );
Recupera el código TXNID, se le deben pasar el token del cual queremos recuperarlo.