Jump to content
Lilium Sancta

Addon PagSeguro para FluxCP

Recommended Posts

 

 

 

Lillium, eu instalei tudo certinho, porem o player não recebe os cash e a transação nem aparece no log da cp, sabes como resolver?

o log aparece no mysql, mas não na cp

o status no log para adms fica 

Status Data do envio ▼ Valor 6 15463F6BEBAA53 Yan Ciccone

Sem Continuidade

 

e o deposito foi aprovado

Aparentemente tudo está certo, a não ser a página de notificações (notification). Eu vou verificar o que pode ter ocorrido, mas caso queira tentar corrigir verifique o arquivo donatesmodulesdoanotification.php e verifique também o arquivo error_log na raiz da sua hospedagem que pode conter alguma informação relevante.

 

 

Opa isso eu consegui arrumar, era uma configuração errada minha, obrigado

Uma coisa que estou me quebrando agora é o seguinte, aparentemente tem um bug quando vc escolhe o valor de irá depositar

ex: você deposita 10 na caixa ao lado deveria dividir pelo rate, ficando 10000, mas não está acontecendo, ele retorna o mesmo valor

sabes como posso corrigir?

Edited by JulioCF
Links retirados, evite links externos para servidores.

Share this post


Link to post
Share on other sites

Opa isso eu consegui arrumar, era uma configuração errada minha, obrigado

Uma coisa que estou me quebrando agora é o seguinte, aparentemente tem um bug quando vc escolhe o valor de irá depositar

ex: você deposita 10 na caixa ao lado deveria dividir pelo rate, ficando 10000, mas não está acontecendo, ele retorna o mesmo valor

sabes como posso corrigir?

Verifique a configuração 'CreditExchangeRate' no arquivo application.php do próprio fluxcp ambas devem estar configuradas igualmente para funcionar. Edited by Lilium Sancta

Share this post


Link to post
Share on other sites

 

Opa isso eu consegui arrumar, era uma configuração errada minha, obrigado

Uma coisa que estou me quebrando agora é o seguinte, aparentemente tem um bug quando vc escolhe o valor de irá depositar

ex: você deposita 10 na caixa ao lado deveria dividir pelo rate, ficando 10000, mas não está acontecendo, ele retorna o mesmo valor

sabes como posso corrigir?

Verifique a configuração 'CreditExchangeRate' no arquivo application.php do próprio fluxcp ambas devem estar configuradas igualmente para funcionar.

 

Funcionouu obrigado

Share this post


Link to post
Share on other sites

 

 

 

 

Opa isso eu consegui arrumar, era uma configuração errada minha, obrigado

Uma coisa que estou me quebrando agora é o seguinte, aparentemente tem um bug quando vc escolhe o valor de irá depositar

ex: você deposita 10 na caixa ao lado deveria dividir pelo rate, ficando 10000, mas não está acontecendo, ele retorna o mesmo valor

sabes como posso corrigir?

Verifique a configuração 'CreditExchangeRate' no arquivo application.php do próprio fluxcp ambas devem estar configuradas igualmente para funcionar.

 

 

 

Funcionouu obrigado

 

 

Certo qualquer outro problema informe aqui ou no meu e-mail.

Share this post


Link to post
Share on other sites

olá, desculpe reviver o topico... não sei se estou configurando alguma coisa errada porem no meu fluxcp quando eu clico em "doar" ele da um erro... criei um topico hj mais cedo acredito que na area errada... só agora fui ver seu post aqui...

 

 

 

Exception Details

Error: Exception

Message: PagSeguroLibrary: DOM XML extension is required.

File: /var/www/html/addons/donates/lib/PagSeguroLibrary.php:73

File Line Function/Method /var/www/html/addons/donates/lib/PagSeguroLibrary.php 50 PagSeguroLibrary::verifyDependencies() /var/www/html/addons/donates/lib/PagSeguroLibrary.php 111 PagSeguroLibrary::init() /var/www/html/addons/donates/modules/doa/process.php 4 require_once() /var/www/html/lib/Flux/Template.php 375 include() /var/www/html/lib/Flux/Dispatcher.php 170 Flux_Template::render() /var/www/html/index.php 180 Flux_Dispatcher::dispatch() Exception Trace As String#0 /var/www/html/addons/donates/lib/PagSeguroLibrary.php(50): PagSeguroLibrary::verifyDependencies()
#1 /var/www/html/addons/donates/lib/PagSeguroLibrary.php(111): PagSeguroLibrary::init()
#2 /var/www/html/addons/donates/modules/doa/process.php(4): require_once('/var/www/html/a...')
#3 /var/www/html/lib/Flux/Template.php(375): include('/var/www/html/a...')
#4 /var/www/html/lib/Flux/Dispatcher.php(170): Flux_Template->render()
#5 /var/www/html/index.php(180): Flux_Dispatcher->dispatch(Array)
#6 {main}

Share this post


Link to post
Share on other sites

 

olá, desculpe reviver o topico... não sei se estou configurando alguma coisa errada porem no meu fluxcp quando eu clico em "doar" ele da um erro... criei um topico hj mais cedo acredito que na area errada... só agora fui ver seu post aqui...

 

 

 

Exception Details

Error: Exception

Message: PagSeguroLibrary: DOM XML extension is required.

File: /var/www/html/addons/donates/lib/PagSeguroLibrary.php:73

File Line Function/Method /var/www/html/addons/donates/lib/PagSeguroLibrary.php 50 PagSeguroLibrary::verifyDependencies() /var/www/html/addons/donates/lib/PagSeguroLibrary.php 111 PagSeguroLibrary::init() /var/www/html/addons/donates/modules/doa/process.php 4 require_once() /var/www/html/lib/Flux/Template.php 375 include() /var/www/html/lib/Flux/Dispatcher.php 170 Flux_Template::render() /var/www/html/index.php 180 Flux_Dispatcher::dispatch() Exception Trace As String #0 /var/www/html/addons/donates/lib/PagSeguroLibrary.php(50): PagSeguroLibrary::verifyDependencies()

#1 /var/www/html/addons/donates/lib/PagSeguroLibrary.php(111): PagSeguroLibrary::init()

#2 /var/www/html/addons/donates/modules/doa/process.php(4): require_once('/var/www/html/a...')

#3 /var/www/html/lib/Flux/Template.php(375): include('/var/www/html/a...')

#4 /var/www/html/lib/Flux/Dispatcher.php(170): Flux_Template->render()

#5 /var/www/html/index.php(180): Flux_Dispatcher->dispatch(Array)

#6 {main}

Instale essa extensão em seu servidor php http://php.net/manual/pt_BR/dom.setup.php ou peça para sua empresa de hospedagem.

Share this post


Link to post
Share on other sites

consegui achar outro tutorial de como instalar o xml dom...  ( o comando no linux centos é "sudo yum install php-xml" e depois "sudo service httpd restart" )

 

porem agora aparece o seguinte erro...

 

 

 

Error: PagSeguroServiceException

Message: [HTTP 401] - UNAUTHORIZED

File: /var/www/html/addons/donates/lib/service/PagSeguroPaymentService.class.php:74

File Line Function/Method /var/www/html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php 600 PagSeguroPaymentService::createCheckoutRequest() /var/www/html/addons/donates/modules/doa/process.php 40 PagSeguroPaymentRequest::register() /var/www/html/lib/Flux/Template.php 375 include() /var/www/html/lib/Flux/Dispatcher.php 170 Flux_Template::render() /var/www/html/index.php 180 Flux_Dispatcher::dispatch() Exception Trace As String#0 /var/www/html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php(600): PagSeguroPaymentService::createCheckoutRequest(Object(PagSeguroAccountCredentials), Object(PagSeguroPaymentRequest))
#1 /var/www/html/addons/donates/modules/doa/process.php(40): PagSeguroPaymentRequest->register(Object(PagSeguroAccountCredentials))
#2 /var/www/html/lib/Flux/Template.php(375): include('/var/www/html/a...')
#3 /var/www/html/lib/Flux/Dispatcher.php(170): Flux_Template->render()
#4 /var/www/html/index.php(180): Flux_Dispatcher->dispatch(Array)
#5 {main}
Edited by joaolipinski

Share this post


Link to post
Share on other sites

 

consegui achar outro tutorial de como instalar o xml dom...  ( o comando no linux centos é "sudo yum install php-xml" e depois "sudo service httpd restart" )

 

porem agora aparece o seguinte erro...

 

 

 

Error: PagSeguroServiceException

Message: [HTTP 401] - UNAUTHORIZED

File: /var/www/html/addons/donates/lib/service/PagSeguroPaymentService.class.php:74

File Line Function/Method /var/www/html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php 600 PagSeguroPaymentService::createCheckoutRequest() /var/www/html/addons/donates/modules/doa/process.php 40 PagSeguroPaymentRequest::register() /var/www/html/lib/Flux/Template.php 375 include() /var/www/html/lib/Flux/Dispatcher.php 170 Flux_Template::render() /var/www/html/index.php 180 Flux_Dispatcher::dispatch() Exception Trace As String#0 /var/www/html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php(600): PagSeguroPaymentService::createCheckoutRequest(Object(PagSeguroAccountCredentials), Object(PagSeguroPaymentRequest))

#1 /var/www/html/addons/donates/modules/doa/process.php(40): PagSeguroPaymentRequest->register(Object(PagSeguroAccountCredentials))

#2 /var/www/html/lib/Flux/Template.php(375): include('/var/www/html/a...')

#3 /var/www/html/lib/Flux/Dispatcher.php(170): Flux_Template->render()

#4 /var/www/html/index.php(180): Flux_Dispatcher->dispatch(Array)

#5 {main}

Seu e-mail e token estão configurados corretamente ?

Share this post


Link to post
Share on other sites

@@Lilium Sancta

 

Lilium Primeiro queria agradecer pelo addon, estou usando o sistema e está funcionando perfeito, muito bom!! Obrigado!!

 

Só tenho uma dúvida, saberia me dizer como consigo exibir o total de #CashPoints da conta?

Meu flux cp usa essa linha para exibir:

 

<span class="balance-text">Créditos</span><span class="balance-amount"><?php echo number_format((int)$session->account->balance) ?></span>

Porém eu uso chaspoints da tabela acc_reg_num_db do campo key.

Sabe onde eu preciso mudar para pegar esses valores e exibir na página?

 

Obrigado.

Share this post


Link to post
Share on other sites

Detalhes da Exceção

Erro: PagSeguroServiceException

Mensagem: [HTTP 400] - BAD_REQUEST 

[11029] - Montante da adição padrão inválido:. 500. Deve caber a patern: \ d + \ d {2}

Ficheiro: /home/ragnaproject/public_html/addons/donates/lib/service/PagSeguroPaymentService.class.php:68

Arquivo Linha Função / Método /home/ragnaproject/public_html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php 600 PagSeguroPaymentService :: createCheckoutRequest () /home/ragnaproject/public_html/addons/donates/modules/doa/process.php 40 PagSeguroPaymentRequest :: register () /home/ragnaproject/public_html/lib/Flux/Template.php 337 incluir() /home/ragnaproject/public_html/lib/Flux/Dispatcher.php 168 Flux_Template :: render () /home/ragnaproject/public_html/index.php 177 Flux_Dispatcher :: expedição () Rastreio de exceção como cadeia

# 0 /home/ragnaproject/public_html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php(600): PagSeguroPaymentService :: createCheckoutRequest (Object (PagSeguroAccountCredentials), Object (PagSeguroPaymentRequest))

# 1 /home/ragnaproject/public_html/addons/donates/modules/doa/process.php(40): PagSeguroPaymentRequest-> register (Object (PagSeguroAccountCredentials))

# 2 /home/ragnaproject/public_html/lib/Flux/Template.php(337): include ('/ home / ragnaproj ...')

# 3 /home/ragnaproject/public_html/lib/Flux/Dispatcher.php(168): Flux_Template-> render ()

# 4 /home/ragnaproject/public_html/index.php(177): Flux_Dispatcher-> dispatch (Array)

# 5 {main}

Share this post


Link to post
Share on other sites
On 17/09/2014 at 2:35 PM, Lilium Sancta said:

Sua conta no pagseguro está configurada incorretamente, você está usando o antigo sistema ou seja este: https://pagseguro.uol.com.br/desenvolvedor/retorno_automatico_de_dados.jhtml (Retorno automático de dados.) quando na verdade o plugin usa este :https://pagseguro.uol.com.br/v3/guia-de-integracao/api-de-notificacoes.html (PAGAMENTOS VIA API) por questões de segurança foi criada a API de notificações, criar um plugin com o antigo sistema seria um erro, pois qualquer um poderia fraudar facilmente. Ou seja nenhuma dessas informações deve ser recebida via post e utilizadas para aprovar doações, a API recebe apenas um código e depois ela faz a requisição dos outros dados diretamente do PagSeguro ou seja no post não deve conter nada referente a transação apenas o notificationCode e notificationType. Por isto não funcionou apesar de um post ser recebido a página notification.php não sabe o que fazer com esses dados do antigo sistema. Creio que não há erro algum no plugin e sim na configuração de sua conta, altere a sua conta de acordo com essas imagens e verifique novamente:

 

https://pagseguro.uol.com.br/integracao/pagamentos-via-api.jhtml

IBvxdB.png

https://pagseguro.uol.com.br/integracao/notificacao-de-transacoes.jhtml

rTHrPH.png

https://pagseguro.uol.com.br/integracao/retorno-automatico-de-dados.jhtml

VS08Oy.png

 

O retorno automático de dados não deve ser habilitado, tudo é feito através da api de notificações de forma mais segura.

 

EDIT: Pelo que pude ver do seu painel os antigos problemas de segurança no FluxCP ainda existem, quando eu puder vou postar algo sobre, mas saiba que o FluxCP mesmo a versão do hercules possui problemas de segurança, tanto na parte de registro de contas como na parte de recuperação de senhas, há outros problemas também menos graves.

Estou com o mesmo problema, as fotos não aparece mais... você ainda pode ajudar?

Share this post


Link to post
Share on other sites
On 11/01/2017 at 2:23 AM, mordok said:

Detalhes da Exceção

Erro: PagSeguroServiceException

Mensagem: [HTTP 400] - BAD_REQUEST 

[11029] - Montante da adição padrão inválido:. 500. Deve caber a patern: \ d + \ d {2}

Ficheiro: /home/ragnaproject/public_html/addons/donates/lib/service/PagSeguroPaymentService.class.php:68

Arquivo Linha Função / Método /home/ragnaproject/public_html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php 600 PagSeguroPaymentService :: createCheckoutRequest () /home/ragnaproject/public_html/addons/donates/modules/doa/process.php 40 PagSeguroPaymentRequest :: register () /home/ragnaproject/public_html/lib/Flux/Template.php 337 incluir() /home/ragnaproject/public_html/lib/Flux/Dispatcher.php 168 Flux_Template :: render () /home/ragnaproject/public_html/index.php 177 Flux_Dispatcher :: expedição () Rastreio de exceção como cadeia

# 0 /home/ragnaproject/public_html/addons/donates/lib/domain/PagSeguroPaymentRequest.class.php(600): PagSeguroPaymentService :: createCheckoutRequest (Object (PagSeguroAccountCredentials), Object (PagSeguroPaymentRequest))

# 1 /home/ragnaproject/public_html/addons/donates/modules/doa/process.php(40): PagSeguroPaymentRequest-> register (Object (PagSeguroAccountCredentials))

# 2 /home/ragnaproject/public_html/lib/Flux/Template.php(337): include ('/ home / ragnaproj ...')

# 3 /home/ragnaproject/public_html/lib/Flux/Dispatcher.php(168): Flux_Template-> render ()

# 4 /home/ragnaproject/public_html/index.php(177): Flux_Dispatcher-> dispatch (Array)

# 5 {main}

Tive esse mesmo problema quando clico no botão do pagseguro. Alguém sabe a solução?

 

EDIT: achei a solução, você tem que entrar em addons\donates\modules\doa\process.php (35) e adicionar um ponto entre as aspas, é só trocar str_replace(",","" por str_replace(",","."

Edited by Joao

Share this post


Link to post
Share on other sites

Estava com tempo livre e o Slicer me pediu para atualizar a api do addon, então resolvi colocar logo no github e ai está uma versão atualizada com a mais nova api e reescrita com um código um pouco mais organizado com novas features:

Atualizada API de pagamentos do PagSeguro para ultima versão, inserido uso do PagSeguroLightbox, código reformulado para uso de OO onde possível, inserido sandbox do PagSeguro, remoção de arquivos desnecessários, inserido uso de ajax/jQuery/Json se livrando das mudanças em lib/Flux/Template.php e mais um monte de coisas que nem eu mesmo sei.

Possui diversas mudanças no funcionamento então caso vá atualizar é necessário uma atualização na tabela antiga:

ALTER TABLE `cp_donate`
  DROP COLUMN `payment_notification_code`,
  DROP COLUMN `payment_status`,
  MODIFY `account_id` int(11) NOT NULL,
  MODIFY `userid` varchar(23) NOT NULL,
  MODIFY `email` varchar(39) NOT NULL,
  MODIFY `payment_date` datetime NOT NULL,
  MODIFY `payment_id` varchar(50) NOT NULL,
  MODIFY `payment` float NOT NULL,
  MODIFY `payment_ip` varchar(35) NOT NULL,
  MODIFY `payment_type` varchar(23) NOT NULL DEFAULT 'PagSeguro',
  MODIFY `payment_code` varchar(50) NULL,
  CHANGE `payment_status_pagseguro` `payment_status` tinyint(3) NOT NULL DEFAULT '0';

Depois insiro algumas imagens no github de como está atualmente pois tiveram algumas mudanças visuais também. Com o tempo posso estar fazendo novas funções como sorteio para doadores, top 10 e etc.

Link -> https://github.com/LiliumSancta/Flux-CP-PagSeguro

Share this post


Link to post
Share on other sites
4 hours ago, Lilium Sancta said:

Estava com tempo livre e o Slicer me pediu para atualizar a api do addon, então resolvi colocar logo no github e ai está uma versão atualizada com a mais nova api e reescrita com um código um pouco mais organizado com novas features:

Atualizada API de pagamentos do PagSeguro para ultima versão, inserido uso do PagSeguroLightbox, código reformulado para uso de OO onde possível, inserido sandbox do PagSeguro, remoção de arquivos desnecessários, inserido uso de ajax/jQuery/Json se livrando das mudanças em lib/Flux/Template.php e mais um monte de coisas que nem eu mesmo sei.

Possui diversas mudanças no funcionamento então caso vá atualizar é necessário uma atualização na tabela antiga:


ALTER TABLE `cp_donate`
  DROP COLUMN `payment_notification_code`,
  DROP COLUMN `payment_status`,
  MODIFY `account_id` int(11) NOT NULL,
  MODIFY `userid` varchar(23) NOT NULL,
  MODIFY `email` varchar(39) NOT NULL,
  MODIFY `payment_date` datetime NOT NULL,
  MODIFY `payment_id` varchar(50) NOT NULL,
  MODIFY `payment` float NOT NULL,
  MODIFY `payment_ip` varchar(35) NOT NULL,
  MODIFY `payment_type` varchar(23) NOT NULL DEFAULT 'PagSeguro',
  MODIFY `payment_code` varchar(50) NULL,
  CHANGE `payment_status_pagseguro` `payment_status` tinyint(3) NOT NULL DEFAULT '0';

Depois insiro algumas imagens no github de como está atualmente pois tiveram algumas mudanças visuais também. Com o tempo posso estar fazendo novas funções como sorteio para doadores, top 10 e etc.

Link -> https://github.com/LiliumSancta/Flux-CP-PagSeguro

Parabéns pelo trabalho.

Share this post


Link to post
Share on other sites
On 23/12/2018 at 2:32 PM, Lilium Sancta said:

Estava com tempo livre e o Slicer me pediu para atualizar a api do addon, então resolvi colocar logo no github e ai está uma versão atualizada com a mais nova api e reescrita com um código um pouco mais organizado com novas features:

Atualizada API de pagamentos do PagSeguro para ultima versão, inserido uso do PagSeguroLightbox, código reformulado para uso de OO onde possível, inserido sandbox do PagSeguro, remoção de arquivos desnecessários, inserido uso de ajax/jQuery/Json se livrando das mudanças em lib/Flux/Template.php e mais um monte de coisas que nem eu mesmo sei.

Possui diversas mudanças no funcionamento então caso vá atualizar é necessário uma atualização na tabela antiga:


ALTER TABLE `cp_donate`
  DROP COLUMN `payment_notification_code`,
  DROP COLUMN `payment_status`,
  MODIFY `account_id` int(11) NOT NULL,
  MODIFY `userid` varchar(23) NOT NULL,
  MODIFY `email` varchar(39) NOT NULL,
  MODIFY `payment_date` datetime NOT NULL,
  MODIFY `payment_id` varchar(50) NOT NULL,
  MODIFY `payment` float NOT NULL,
  MODIFY `payment_ip` varchar(35) NOT NULL,
  MODIFY `payment_type` varchar(23) NOT NULL DEFAULT 'PagSeguro',
  MODIFY `payment_code` varchar(50) NULL,
  CHANGE `payment_status_pagseguro` `payment_status` tinyint(3) NOT NULL DEFAULT '0';

Depois insiro algumas imagens no github de como está atualmente pois tiveram algumas mudanças visuais também. Com o tempo posso estar fazendo novas funções como sorteio para doadores, top 10 e etc.

Link -> https://github.com/LiliumSancta/Flux-CP-PagSeguro

Como faço para adicionar o valor do cash?

Share this post


Link to post
Share on other sites
44 minutes ago, Lilium Sancta said:

Isso só que quando tem valor em cash ele funciona normalmente mas quando o valor é 0 ele da esse bug

https://imgur.com/a/fF5OLL1

<?php if (!defined('FLUX_ROOT')) exit; ?>
<div class="credit-balance">
	<h2><span class="keyword"><span class="balance-text"><span style="color:#000000"><b>CRÉDITOS:</b></span></span>
	<span class="balance-amount">
		
	   <?php

			$donateVar = Flux::config('PagSeguroVar');
			$sql = "SELECT * FROM {$server->charMapDatabase}.`global_reg_value` WHERE `account_id` = ? AND `str` = ?";
    		$sth = $server->connection->getStatement($sql);
			$sth->execute(array($session->account->account_id, $donateVar));
			$balance = $sth->fetch();
			echo number_format((int)$balance->value);
		?>
</div>

 

Share this post


Link to post
Share on other sites
19 hours ago, Phear said:

Isso só que quando tem valor em cash ele funciona normalmente mas quando o valor é 0 ele da esse bug

https://imgur.com/a/fF5OLL1


<?php if (!defined('FLUX_ROOT')) exit; ?>
<div class="credit-balance">
	<h2><span class="keyword"><span class="balance-text"><span style="color:#000000"><b>CRÉDITOS:</b></span></span>
	<span class="balance-amount">
		
	   <?php

			$donateVar = Flux::config('PagSeguroVar');
			$sql = "SELECT * FROM {$server->charMapDatabase}.`global_reg_value` WHERE `account_id` = ? AND `str` = ?";
    		$sth = $server->connection->getStatement($sql);
			$sth->execute(array($session->account->account_id, $donateVar));
			$balance = $sth->fetch();
			echo number_format((int)$balance->value);
		?>
</div>

 

Muda esse trecho:

echo number_format((int)$balance->value);

Para isso:

echo number_format(is_null($balance->value) ? 0 : $balance->value);

Se não ser certo tenta com is_object($balance), não sei ao certo qual a linha que vem dando o error, mas é mais ou menos isso ai.

Edited by Lilium Sancta

Share this post


Link to post
Share on other sites
35 minutes ago, Lilium Sancta said:

Muda esse trecho:


echo number_format((int)$balance->value);

Para isso:


echo number_format(is_null($balance->value) ? 0 : $balance->value);

Se não ser certo tenta com is_object($balance), não sei ao certo qual a linha que vem dando o error, mas é mais ou menos isso ai.

Não funcionou ficou a mesma coisa

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.