Você está na página 1de 3

Page 1 of 3

Módulo CompraFácil para VirtueMart

v2.52 - 22/10/2010

Guia de Instalação rápida

Conteúdo:

0. Compatibilidade
1. Instalação
2. URL de callback
2.1 Parâmetros do ficheiro de callback
3. Identificador de encomenda no CompraFácil
4. Histórico

0. Compatibilidade

Este módulo foi testado nas versões 1.1.4 e 1.1.5 do Virtuemart.

1. Instalação
As scripts devem ser colocadas da seguinte forma:

pasta origem nesta distribuição pasta destino no site


\virtuemart1.1.4 [joomla]\administrator\components\com_virtuemart\classes\payment
\callback [joomla]\ (raiz do site)

O processo de instalação consiste nos seguintes passos:

1) Copiar as scripts fornecidas para o local indicado (conforme tabela anterior).

2) Na administração do VirtueMart criar dois novos método de pagamento, um para Multibanco, outro para PayShop (desta forma será possível seleccionar um deles
no processo de checkout na loja)

para referências multibanco:

o parâmetro "payment class name" deve ser "ps_comprafacil" se a extensão SOAP do PHP estiver activa, ou "ps_comprafacil2" caso contrário. O tipo de pagamento
deverá ser HTML-Form; o código do método de pagamento pode ser CF.

para referências PayShop:

o parâmetro "payment class name" deve ser "ps_comprafacil_payshop" se a extensão SOAP do PHP estiver activa, ou "ps_comprafacil2_payshop" caso contrário. O
tipo de pagamento deverá ser HTML-Form; o código do método de pagamento pode ser PS.

3) Na página de configuração do método de pagamento:

3.1) Preencher os dados de acesso ao sistema CompraFacil com os dados necessários (username e password - devem ser fornecidos pela Himedia).

3.2) Especificar a origem que será mostrada associada às referências geradas. (Nota: este modulo não suporta a utilização do campo origem para especificar URL de
chamada de retorno por parte do sistema CompraFácil. Para especificar URLs de chamada deve-se usar o campo respectivo que existe no backoffice do CompraFácil)

3.3) Seleccionar a entidade a utilizar (10241 ou 11249)

3.4) Seleccionar se está a funcionar em modo de teste (isto implica que o modulo use o sistema de testes CompraFácil, para o qual são necessários dados de acesso
apropriados fornecidos pela Himedia)

4) preencher o campo Payment Extra Info com o código (ou semelhante, conforme as necessidades do cliente):

para referências multibanco:

<?php
if ( isset($_SESSION['cf_reference'])) {
?>

Para pagar deverá dirigir-se a uma caixa Multibanco ou utilizar o seu <i>homebanking</i>.
<br><br>
Os dados para pagamento são:
<br><br>

<b>Referência:</b> <?php echo $_SESSION['cf_reference']?><br>


<b>Entidade:</b> <?php echo $_SESSION['cf_entity']?><br>
<b>Valor:</b> <?php echo $_SESSION['cf_value']?> euros<br>

<?php
$_SESSION['cf_reference']=null;
}
?>

file:///C:/Users/Admin/Desktop/temp/modulo%20VirtueMart%20para%20Comprafac... 02-05-2011
Page 2 of 3

para referências PayShop:

<?php
if ( isset($_SESSION['cf_reference'])) {
?>
Para pagar deverá dirigir-se a um agente PayShop.
<br><br>
Os dados para pagamento são:
<br><br>
<b>Referência:</b> <?php echo $_SESSION['cf_reference']
?><br>
<b>Data limite de pagamento:</b> <?php echo
$_SESSION['cf_datelimit'] ?><br>
<b>Valor:</b> <?php echo $_SESSION['cf_value'] ?>
euros<br>
<?php
$_SESSION['cf_reference'] = null;
}
?>

Atenção:
Este módulo armazena na encomenda, no campo "Customer note" a informação da referência gerada. Para isto, é necessário alterar o ficheiro:

[joomla]\administrator\components\com_virtuemart\classes\ps_checkout .php

Neste ficheirto, a partir da linha 969 existe o seguinte código:

// Collect all fields and values to store them!


$fields = array(
'user_id' => $auth["user_id"],
'vendor_id' => $ps_vendor_id,
'order_number' => $order_number,
'user_info_id' => $d["ship_to_info_id"],
'ship_method_id' => @urldecode($d["shipping_rate_id"]),
'order_total' => $order_total,
'order_subtotal' => $order_subtotal,
'order_tax' => $order_tax,
'order_tax_details' => serialize($order_tax_details),
'order_shipping' => $order_shipping,
'order_shipping_tax' => $order_shipping_tax,
'order_discount' => $payment_discount,
'coupon_discount' => $coupon_discount,
'coupon_code' => @$_SESSION['coupon_code'],
'order_currency' => $GLOBALS['product_currency'],
'order_status' => 'P',
'cdate' => $timestamp,
'mdate' => $timestamp,
'customer_note' => htmlspecialchars(vmRequest::getString('customer_note','', 'POST', 'none' ),ENT_QUOTES ),
'ip_address' => $ip
);

Neste código, a linha

'customer_note' => htmlspecialchars(vmRequest::getString('customer_note','', 'POST', 'none' ), ENT_QUOTES ),

deve passar a

'customer_note' => htmlspecialchars(vmGet($d,'customer_note') , ENT_QUOTES),

Este ficheiro está incluído nesta distribuição na pasta "ficheiro_checkout"

2. URL de callback

O CompraFácil pode chamar URLs para notificar o parceiro que uma dada referência foi paga (nota: esta funcionalidade terá de ser activada a pedido do parceiro à
Himedia). Para tal, estas devem ser especificadas no campo "origem" na chamada que é feita ao webservice do CompraFácil. Os presentes módulos de pagamento
para Virtuemart permitem configurar o conteúdo a passar no campo "origem" quando é feito o pedido de geração de uma referência.

O URL a especificar é na forma:

http://www.exemplo.com/CFCallback.php?orderID=[ORDERNUM]

O ficheiro a ser chamado é o CFCallback.php que, como referido anteriormente, deve ser colocado na raiz do site.

Este ficheiro, quando chamado pelo CompraFácil irá receber o número de encomenda do Virtuemart. Para isto deve ser usado o parâmetro orderID e a tag
[ORDERNUM].

A tag [ORDERNUM] na chamada ao CompraFácil é substituida automáticamente pelo número de encomenda do Virtuemart respectivo. Este número de encomenda
é encriptado, sendo usado no algorimo a chave definida nas propriedades do método de pagamento seleccionado.

2.1 Parâmetros do ficheiro de callback

O ficheiro CFCallback.php utiliza duas variáveis que devem ser alteradas conforme necessário.

file:///C:/Users/Admin/Desktop/temp/modulo%20VirtueMart%20para%20Comprafac... 02-05-2011
Page 3 of 3

A variável $newOrderStatus especifica o novo estado com que a encomenda irá ficar encomenda no caso da chamada ao URL ser bem sucedida. Por defeito está
com o valor 'C'.

$newOrderStatus = 'C';

Deverá ser alterada com o código do estado para o qual as encomendas devem passar após a confirmação de pagamento.

A variável $key especifica a chave de encriptação utilizada para descriptar o valor do número de encomenda que é recebido do CompraFácil. Deve ser usada a
mesma chave que estiver especificada nas propriedades do método de pagamento utilizado no Virtuemart.

Atenção: Se estiverem activos os métodos de pagamento por Multibanco e por PayShop, a chave de encriptação deve ser a mesma em ambos, bem como no ficheiro
CFCallback.php.

3. Identificador de encomenda no CompraFácil

Este módulo passa para o número da encomenda do Virtuemart para o CompraFácil, sendo ele armazenado no campo "referência externa".

Quando acontece o pagamento de uma referência o CompraFácil irá enviar um email de notificação ao parceiro. Neste email é mostrado o campo "referência
externa", podendo desta forma associar-se mais facilmente o pagamento à encomenda em causa no Virtuemart.

Como este número de encomenda é um valor auto-incrementado gerado pela BD, só está disponivel após toda a encomenda ser guardada na BD. Desta forma este
valor não está diponível quando a referência é gerada e consequentemente não é possível armazenar no CompraFácil um valor exacto.

Sendo assim, o valor armazenado no CompraFácil é um valor calculado que estará correcto a maior parte das vezes, pelo que convém que o parceiro confirme
(quando recebe o email) se o valor do email está correcto.

4. Histórico

v 2.5.2:
- Alterações no manual de instalação

v 2.5.1:
- envio de email para o CF

v 2.5:
- melhorado suporte para ambiente de testes do CF
- criação de funcionalidade de callback

file:///C:/Users/Admin/Desktop/temp/modulo%20VirtueMart%20para%20Comprafac... 02-05-2011

Você também pode gostar