Usar soles y dólares en Payme (Alignet)
Payme es una de las pasarelas de pago con mayor presencia a nivel latinoamericana y además, una de las que tiene la menor comisión. Por si les interesa aquí una comparación de varias pasarelas de pago: https://goo.gl/PFkRkz
Payme actualmente no soporta 2 monedas, para ello se necesita crear otro comercio con otros códigos de acceso para la otra moneda:
Por ejemplo:
El comercio «LIBRERIA CESAR» usa Payme y factura en Soles, ahora quiere hacerlo en Dólares, para ello Alignet crea otra cuenta y genera un nuevo ID COMMERCE, ID ACQUIRER, ID WALLET y te indica que para Soles debes usar los antiguos datos y para dólares estos nuevos.
Antes de empezar.
Necesitas un plugin del tipo switch que te permite cambiar las monedas, hay tantas que podes elegir cualquiera de tu preferencia.
WOOCS – Currency Switcher for WooCommerce. Multi Currency and Multi Pay for WooCommerce
WALLET: Woocommerce Payme
El plugin Woocommerce Payme te provee de hooks para que puedas agregar y/o modificar datos antes de ser enviados a Payme. Primero brindaremos los nuevos datos a Wallet (billetera digital), para ello usaremos el filtro «payme/vars/wallet», recuerda poner este código en tu functions.php
<?php function letsgo_vars_wallet($array_wallet, $order) { if( get_woocommerce_currency() == 'USD' ) { $passwallet = '#########################'; // PASSWORD_WALLET $idEntCommerce = '###'; // ID_WALLET $userCommerce = $array_wallet['codCardHolderCommerce']; $billing_email = $order->get_billing_email(); $array_wallet['idEntCommerce'] = $idEntCommerce; $array_wallet['registerVerification'] = openssl_digest($idEntCommerce . $userCommerce . $billing_email . $passwallet, 'sha512'); } return $array_wallet; } add_filter('payme/vars/wallet','letsgo_vars_wallet',10,2); ?>
Explicación:
Recuerda que la moneda principal es SOLES y ya la tenemos configurada así en el panel de Woocommerce, aquí estamos poniendo todos los datos del nuevo comercio DOLARES que es la moneda secundaria.
Empezamos con la condicional if(get_woocommerce_currency() == ‘USD’) , pues preguntamos si es DOLARES para brindarle los nuevos datos.
Ponemos los nuevos datos del comercio en DOLARES, en este caso los nuevos campos son: clave de wallet ($passwallet) y el ID Wallet ($idEntCommerce)
Si tenes Wallet deshabilitado, no necesitas hacer este punto.
VPOS
Ahora es turno de VPOS, para ello usaremos el filtro «payme/vars/vpos», recuerda ponerlo en tu functions.php
function letsgo_vars_vpost($array_vpos, $order) { if( get_woocommerce_currency() == 'USD' ) { $passvpos = '#####################'; //PASSWORD_VPOS $idCommerce = '####'; $acquirerId = '##'; $purCurrency = '840'; // 840 significa dolares $commerceAssociated = 'MALL ALIGNET-PSP DOLARES'; $numorder = $array_vpos['purchaseOperationNumber']; $purmount = $array_vpos['purchaseAmount']; $array_vpos['acquirerId'] = $acquirerId; $array_vpos['idCommerce'] = $idCommerce; $array_vpos['purchaseCurrencyCode'] = $purCurrency; $array_vpos['commerceAssociated'] = $commerceAssociated; $array_vpos['purchaseVerification'] = openssl_digest($acquirerId . $idCommerce . $numorder . $purmount . $purCurrency . $passvpos, 'sha512'); } return $array_vpos; } add_filter('payme/vars/vpos','letsgo_vars_vpost',10,2);
Explicación :
Recuerda que la moneda principal es SOLES y ya la tenemos configurada así en el panel de Woocommerce, aquí estamos poniendo todos los datos del nuevo comercio DOLARES que es la moneda secundaria.
Empezamos con la condicional if(get_woocommerce_currency() == ‘USD’) , pues preguntamos si es DOLARES para brindarle los nuevos datos.
Ponemos los nuevos datos del comercio en DOLARES, en este caso los nuevos campos son: clave de VPOS ($passvpos), ID del Comercio ($idCommerce), ID adquiriente ($acquirerId), el código de la moneda ($purCurrency) es 840 para dolares y una cadena que relaciona que tu comercio es dolares ($commerceAssociated).
Tan sólo colocando esas 2 funciones ya tendrías listo Payme para 2 monedas (soles y dólares).
Descargar Plugin Documentación