Code Monkey home page Code Monkey logo

erede-php's People

Contributors

diegosurita avatar frital avatar netojoaobatista avatar redeec avatar ricktg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

erede-php's Issues

Problema com integração no woocommerce.

Após instalar o plugin, dá erro crítico no site. No log me retorna:

2023-02-07T16:06:46+00:00 CRITICAL Uncaught Error: Class "Rede\Environment" not found in /home3/labout86/public_html/wp-content/plugins/rede-woocommerce-master/includes/class-wc-rede-api.php:32

authorizationCode vazio

Alguém sabe o por que o campo authorizationCode está vindo vazio na autorização de transações?
Mesmo usando a consulta da transação, após autorização, mesmo assim o campo vem vazio.
Em ambos os ambientes, homologação e produção.

image

Olhei na documentação e não achei nenhuma informação sobre isso.

Orientações para transacionar com carteira digital VISA CHECKOUT

Olá boa tarde, infelizmente não consigo utilizar essa SDK porque não possui acesso as carteiras digitais (visa checkout e masterpass). No manual não encontrei o URL (endpoint) e como deve ser feito a autenticação da loja junto com os json que precisa ser enviado, alguém poderia dar um exemplo bem simples de como deve ser o CURL em PHP em uma requisição de transação por carteira digital?

Abaixo coloco um código de base para o CURL.

https://www.userede.com.br/desenvolvedores/pt/produto/e-Rede#documentacao-carteiras

`
$corpo = [
"reference" => uniqid(),
"amount" => 20000, // para R$200,00
"origin" =>6, // 4 masterpass, 6 visa checkout
"storageCard" => 0, // transacao sem credencial armazenada
"cardNumber" => "5448280000000007", /// aqui no caso seria o wallet key??
"expirationMonth" => 12, /// é obrigatório envio dessa informação??
"expirationYear" => 2020, /// é obrigatório envio dessa informação??
"securityCode" => "235" /// é obrigatório envio dessa informação??

];

$cabecalhos = [
    "Content-Type: application/json"
];



    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_VERBOSE => true, /// DEBUGAR O CURL
        CURLOPT_STDERR => $fp, /// DEBUGAR O CURL
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_URL => 'https://api.userede.com.br/erede/v1/transactions/',
        CURLOPT_HTTPHEADER => $cabecalhos,
        CURLOPT_POSTFIELDS => json_encode($corpo),
        CURLOPT_RETURNTRANSFER => true
    ]);
    $resposta = curl_exec($ch);

    
    curl_close($ch);

`

Muito obrigado.

sem retorno

Prezados, primeiramente, parabéns pela documentação!! Excelente.
Sem mencionar a grande quantidade de SDK's! Parabéns!!!!

Antes que eu esqueça, o site (developers) está com tempos de resposta muito alta. Por exemplo, ao efetuar o login, ou pedir para exibir as lojas, enfim, muito lento, desde o dia em que fiz o cadastro (dia 13/02/2019).
Ah, ainda sugiro atualizar a documentação informando que o terceiro parâmetro para objetos "Store" deve ser o ambiente, assim como, na minha humilde opinião, acho que o default (quando omitido) deveria ser sandbox. Mas, sem problemas. (Para ajudar, tomei a liberdade de fazer um pull request, caso concorde) =)

Vamos ao problema:
Estou no modo sandbox, e somente tenho retorno da api se algo estiver errado com os dados de PV ou token (aí recebo o "Affiliation: Invalid parameter format" ou "Token: Invalid token.").
Caso estes dados estejam corretos, não recebo mais retorno a api. O que eu poderia estar fazendo errado? (ou será que teria haver com a lentidão que mencionei préviamente?)
Muito obrigado por antecipação, e abaixo trecho do meu código:

`
$store = new Store(env('E_REDE_PV'),env('E_REDE_TOKEN'), Environment::sandbox());

    $transaction = new Transaction();
    $transaction->setReference($idVenda);
    $transaction->setAmount($valorTotal);
    $transaction->setSoftDescriptor($produto);
    $transaction->capture(true);
    $transaction->setCard($cardNumber, $securityCode, $expirationMonth, $expirationYear, $cardHolderName, 'credit');
    if ($installments != null)
        $transaction->setInstallments($installments);

    $eRede = new eRede($store);

    $retorno  = null;

    try {
        $retorno = $eRede->create($transaction);
    } catch (RedeException $ex) {
        $retorno = $ex->getMessage();
    }

    print_r($retorno);`

integração com prestshop

Bom dia!
Estou tentando fazer a integração usando o modulo rede com esta biblioteca php, mas não esta dando certo, poderia me auxiliar?

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in

Primeiro teste que fui fazer e já deu erro. O que estou fazendo errado ?

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/storage/d/8e/d4/duplloimpacto1/public_html/restrito/autorizacao.php on line 9

creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' ); // Autoriza a transação $transaction = (new \Rede\eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); }

Erro na função setAmount

Olá bom dia.

Estou desenvolvendo uma aplicação em PHP com integração a Rede e encontrei um pequeno problema.

Na classe /vendor/developersrede/erede-php/src/Rede/Transaction.php a função setAmount realiza a seguinte operação (int)($amount * 100);

Essa operação pode retornar alguns valores errados, ex (int) (9.04 * 100) = 903.

Uma sugestão para resolver esse pequeno problema seria alterar:

DE:
public function setAmount($amount)
{
$this->amount = (int)($amount * 100);
return $this;
}
PARA:
public function setAmount($amount)
{
$this->amount = ceil($amount * 100);
return $this;
}

Tokenização de Cartões

Olá!

Alguém sabe me informar se na Rede eu consigo fazer a Tokenização de Cartões?

Utilizo essa função na Cielo, e gostaria de usar também na Rede.

Lendo o manual, vi que a Rede oferece um serviço de Carteira Digital, mas acredito que não seja a mesma coisa, pois eles comentam que precisa ser contratado por bandeira.

Obrigado!

Sandbox aceitando Validade e CVV incorretos

Boa tarde.
Estou desenvolvendo um app, utilizando o sistema da rede, finalizando fui efetuar os testes de erro, CVV errado, data de validade errada, etc...
Porém, pelo que vi, ele aceita qualquer CVV e validade, quebrando meus testes de erro.
Alguma luz?
Obrigado.

Quantidade de Parcelas

Onde é informado em quantas parcelas o cliente vai efetuar o pagamento.
Creio que deveria estar no json. "installments"

Liguei para a Rede mas souberam informar...

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid json'

Bom dia.

Tentando rodar em Sandbox e tenho o seguinte retorno:

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid json' in /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Transaction.php:436 Stack trace: #0 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php(93): Rede\Transaction->jsonUnserialize('Access Denied') #1 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php(186): Rede\Service\AbstractTransactionsService->parseResponse('Access Denied', 403) #2 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php(45): Rede\Service\AbstractService->sendRequest('{"kind":"credit...', 'POST') #3 /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/eRede.php(81): Rede\Service\AbstractTransactionsService->execute() #4 /home/storage/a/dd/35/ksi/public_html/pgtoservice/in in /home/storage/a/dd/35/ksi/public_html/pgtoservice/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php on line 99

Segue código:

// Configuração da loja em modo sandbox

$store = new \Rede\Store('10004477', 'f153d92adbe9430c87a962c96636a2c1', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
'5448280000000007',
'235',
'12',
'2020',
'Cliente teste'
);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());

}

Identificar Bandeira

Olá, eu preciso identificar a bandeira do cartão. Como é feito essa tarefa?

Quando será disponibilizado criação de Link de Pagamento via API?

Não encontro na documentação, nem na biblioteca referencia a criação do Link de Pagamento. É a funcionalidade mais simples de todas e a integração mais rápida possivel, disponibilizada praticamente por quase todos os concorrentes. Porque nao tem na Rede? Há previsão para disponibilização? (Maxipago não vale, é muito arcaico, alem de que passa pouca credibilidade ao comprador)

3D Secure 2.0

Olá pessoal, gostaria de saber se essa lib já esta englobando a versão 2.0 do 3D Secure.

Pix

Olá.

Existe alguma previsão para liberar a integração por PIX?

Pasta erede-php

Boa noite, estou implementando o código erede, já coloquei o código js, porém não sei onde coloco a pasta disponibilizada aqui do Git

Falha no retorno do authorizationCode

O authorizationCode esta vindo com valor vazio quando faz uma new Transaction para a rede. Uma solução o authorizationCode esta vindo dentro do Brand o que pode ser adicionado no projeto.
Resposta do código abaixo:
object(Rede\Transaction)[4]
private 'amount' => int 99
private 'additional' => null
private 'authorization' => null
private 'authorizationCode' => null
private 'brandTid' => null
private 'brand' =>
object(Rede\Brand)[12]
private 'name' => string 'Mastercard' (length=10)
private 'returnCode' => string '00' (length=2)
private 'returnMessage' => string 'Success.' (length=8)
private 'authorizationCode' => string '586083' (length=6)
private 'cancelId' => null
private 'capture' => null
private 'cardBin' => string '544828' (length=6)
private 'cardHolderName' => string 'Teste' (length=5)
private 'cardNumber' => string '5448280000000007' (length=16)
private 'cart' => null
private 'dateTime' =>

SSL certificate problem: unable to get local issuer certificate

Framework Laravel 5.8 - WampServer - Testes em Localhost
SSL certificate problem: unable to get local issuer certificate
Esse é o erro que retorna quando tento finalizar uma compra usando a API. Fui na E-REDE, criei uma loja playground, configurei o Controller do Cart para a requisição.
`//Api Rede
$pv = 10004970;
$token = 'ed33348f5608426a81748437d5834500';
$store = new \Rede\Store($pv, $token, \Rede\Environment::sandbox());
//dd($store);

    //variaveis
    $numero_cartao = '';
    $cvc = '';
    $mesvenc = '';
    $anovenc = '';
    $nome_cartao = '';
    // Transação que será autorizada
    $transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
        '5448280000000007',
        '235',
        '12',
        '2020',
        'John Snow'
    );

    // Autoriza a transação
    $transaction = (new \Rede\eRede($store))->create($transaction);

    dd($transaction);

    if ($transaction->getReturnCode() == '00') {
        printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
        exit;
    }`

O primiero dd(), retorna:
Store {#234 ▼ -environment: Environment {#231 ▼ -ip: null -sessionId: null -endpoint: "https://api.userede.com.br/desenvolvedores/v1/" } -filiation: 10004970 -token: "ed33348f5608426a81748437d5834500" }
No segundo dd() o retorno é o erro com a certificação SSL. Alguem sabe o que pode ser?
No Wamp tenho o cacert.pem configurado da seguinte forma
;curl.cainfo = "C:\wamp\baixado\cacert.pem"

Adicionar Item

Olá, estou construindo um projeto de inscrição de curso, mas gostaria de na transação adicionar o curso contratado na transação, teria como adicionar um ou mais item na forma de "Autorizando uma transação".
Vi que tem na forma de autorização antifraude, mas são muitos dados do cliente e o sistema é bem simples, não solicitamos o endereço no cadastro apenas dados pessoais simples para identificação do mesmo.
Agradeço

Ajuda no E-rede

Olá amigo, estou implementando o e-rede em uma loja propria de um cliente em ASP classico.
É a primeira vez que trabalho com json, mas ja tenho toda a biblioteca.
Estou tendo apenas 1 dificuldade, para enviar o json, como faço para enviar os dados da afiliacao, que seria o pv e o toquem enquanto esta em desenvolvimento?
No corpo do json não aceita, na url do Post me retorna somente os dados que enviei.
Pode me ajudar?

reference: Order number already exists em Sandbox para qualquer valor no campo reference

Olá, estou tentando realizar transações no Sandbox, mas retorna o codigo de integração 42 o tempo todo.
Mesmo que eu coloque strings como "er5bd74dc2985f08" ele retorna o mesmo erro, tornando impraticável utilizar o Sandbox.
Curiosamente, nos primeiros dias em que tive contato com a integração via SDK, eu fiz dezenas de transações no Sandbox com o campo "reference" definido como "1".

"Unauthorized. Contact issuer." ao autorizar transação

Olá, primeiro quero parabenizar pelo package, código muito bom!

Estou com este problema:
Peguei o código de exemplo e estou rodando em máquina local com um servidor Laragon (apache) e possuo certificado válido, está retornando esta mensagem abaixo.

"Unauthorized. Contact issuer."

try {
        $environment = \Rede\Environment::sandbox();
        $store = new \Rede\Store($credentials['pv'], $credentials['token'], $environment);

        // Transação que será autorizada
        $transaction = (new \Rede\Transaction(20, 'pedido' . time()))
            ->creditCard(
                '5448280000000007',
                '235',
                '12',
                '2020',
                'John Snow'
            );

        // Autoriza a transação
        $transaction = (new \Rede\eRede($store))->create($transaction);
        //...
        // seu código aqui
        } catch (\Rede\Exception\RedeException $e) {
            echo $e->getMessage();
        }

Como usar o softDescriptor

Tudo bem?

Estou com dificuldade em encontrar informações sobre como usar o softDescriptor.
Coo ele deve ser usado?

Obrigado

Como realizar a venda parcelada ?

Tentei da seguinte forma:

$expira = explode('/', $request->expiry);
$dadosCartao = collect();
$dadosCartao->valor = $this->valorFloat($request->valorPagamento);
// Desta forma deu erro -> $dadosCartao->installments = ['type' => 'zero_interest', 'number' => $request->quantidadeParcela];
// Desta forma passou a vista -> $dadosCartao->installments = $request->quantidadeParcela;
$dadosCartao->pedido = $request->alunoCodigo . time();
$dadosCartao->numeroCartao = $this->removerEspacoEmBranco($request->number);
$dadosCartao->numeroVerificador = $request->cvc;
$dadosCartao->expiraMes = trim($expira[0]);
$dadosCartao->expiraAno = trim($expira[1]);
$dadosCartao->titular = $request->name;

// Autoriza a transação
$transacao = (new \Rede\eRede($this->redeStore))->create($this->setTransacao($dadosCartao));

Sand Box

Eu não sei colocar o sand box no meu site, alguém pode me ajudar? Sou iniciante e gostaria de aprender, mas não entendo, o suporte da rede pede que esteja pronto

Fatal error: Uncaught Error: Class 'Rede\Store' not found

pessoal alguem pode me dar uma mão ? oque falta no cod para conseguir testar ?
estou no php 7....

creditCard( '5448280000000007', '235', '12', '2020', 'John Snow' ); // Autoriza a transação $transaction = (new \Rede\eRede($store))->create($transaction); if ($transaction->getReturnCode() == '00') { printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid()); } ?>

Problemas com Unicode ao enviar Transações

Percebi que ao enviar transações com caracteres acentuados o SDK passou a gerar um erro, então realizei algumas requisições diretamente via curl para API usando o mesmo json gerado pelo SDK e percebi que a API e.Rede não aceita caracteres formatados com Unicode. Portanto acredito que seria bacana se SDK, ao se gerar o json, "escapar" o Unicode e manter os caracteres UTF-8, nesse caso, por exemplo, a linha:

return $this->sendRequest(json_encode($this->transaction), AbstractService::POST);

Deveria ser algo como:

    public function execute()
    {
        return $this->sendRequest(json_encode($this->transaction, JSON_UNESCAPED_UNICODE), AbstractService::POST);
    }

Modo sandbox

Como faço para usar no modo sandbox?
Me parece que é esse meu problema estou tentando usar, porem ele só retorna: "Affiliation: Invalid parameter format.".
Pode me ajudar?

Antifraud

Olá, vi que foi removida esta funcionalidade do SDK, exite algum lugar onde podemos encontrar os motivos e mais detalhes sobre o assunto?

Ambiente de Testes fora do ar!

Ao realizar transações me retorna erro algum, e ao tentar criar uma loja nova, me retorna o erro. "Erro ao criar loja, entre em contato com a Rede."
Alguém passando por isso também, alguma previsão de retorno?

Falha na conexão

Oi bom dia,

Realizamos muitas transações por dia com a rede e desde ontem algumas tem retornado a seguinte mensagem:

Failed to connect to api.userede.com.br port 443: Connection timed out

Nem conseguimos nos comunicar com a API. Sabem me dizer se está ocorrendo alguma oscilação por ai? Desde já grata.

Fatal Error em throw new RedeException

Está ocorrendo erro fatal quando é retornado um codigo de status > 400 conforme abaixo o erro.
Desta maneira não consigo tratar o retorno da rede que neste caso é "cod: 171 - Operation not allowed for this transaction."

Será que está faltando algo em meu código? Essa função "throw new RedeException" tem alguma dependência que não estou vendo?

Fatal error: Uncaught exception 'Rede\Exception\RedeException' with message 'Operation not allowed for this transaction.' in /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php:80 Stack trace: #0 /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php(117): Rede\Service\AbstractTransactionsService->parseResponse('{"returnCode":"...', 422) #1 /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/CaptureTransactionService.php(15): Rede\Service\AbstractService->sendRequest('{"amount":2099}', 'PUT') #2 /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/eRede.php(59): Rede\Service\CaptureTransactionService->execute() #3 /home/resen685/public_html/integrarRede/index.php(144): Rede\eRede->capture(Object(Rede\Transaction)) #4 {main} thrown in /home/resen685/public_html/integrarRede/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php on line 80

Fatal error: Uncaught RuntimeException: Curl error

Boa noite, estou com problemas na integração e o suporte solicitou a abertura dessa Issue.

Estou utilizando a api atualizada e as instruções do readme. Funcionava normalmente a função crédito e crédito parcelado, até que parou de funcionar e retorna o erro:

Fatal error: Uncaught RuntimeException: Curl error[7]: in /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php:198 Stack trace: #0 /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php(47): Rede\Service\AbstractService->sendRequest('{"kind":"credit...', 'POST') #1 /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/eRede.php(83): Rede\Service\AbstractTransactionsService->execute() #2 /home/onaorg/public_html/rede_teste.php(34): Rede\eRede->create(Object(Rede\Transaction)) #3 {main} thrown in /home/onaorg/public_html/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php on line 198

Testei em outro servidor e funciona normalmente. A versão do PHP do servidor que está com erro é: 7.3.22

Conseguem verificar qual configuração do servidor deve ser alterada?

Obrigado

Captura

Ao realizar a Captura conforme exemplo:

// PV e TOKEN foram corretamente utilizados para criar uma transação com antifraude
// TID foi retornada na transação citada acima
$store = new \Rede\Store('PV', 'TOKEN');
// Transação que será capturada
$transaction =  (new \Rede\eRede($store))->capture((new \Rede\Transaction(20.99))->setTid('TID'));

if ($transaction->getReturnCode() == '00') {
    printf("Transação capturada com sucesso; tid=%s\n", $transaction->getTid());
}

Retorna o erro:

PHP Fatal error:  Uncaught Rede\Exception\RedeException: Unsuccessful. Please, contact Rede. in /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php:86
Stack trace:
#0 /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/AbstractService.php(141): Rede\Service\AbstractTransactionsService->parseResponse('{"returnCode":"...', 500)
#1 /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/CaptureTransactionService.php(15): Rede\Service\AbstractService->sendRequest('{"amount":2099}', 'PUT')
#2 /var/www/html/vendor/developersrede/erede-php/src/Rede/eRede.php(81): Rede\Service\CaptureTransactionService->execute()
#3 /var/www/html/rede-capturar-transacao.php(8): Rede\eRede->capture(Object(Rede\Transaction))
#4 {main}
  thrown in /var/www/html/vendor/developersrede/erede-php/src/Rede/Service/AbstractTransactionsService.php on line 86

Debugando o response do CURL, resultou nisso:

"{"returnCode":"171","returnMessage":"Operation not allowed for this transaction."}"

Alguma ideia do que possa estar ocorrendo?

Integração de Debito

Olá,
poderia me explicar como faria a implementação da forma de debito, eu trabalho muito com o PagSeguro e lá ele tem a opção de selecionar o banco na loja virtual, no sistema rede é a mesma coisa? pois eu não achei nada que me explica-se a forma de integrar o debito na loja virtual.
Desculpe mais é a primeira vez que trabalho com a rede.
Agradeço

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.