Comments (11)
Estou com o mesmo problema
recebo o erro:
Unsupported operation: Platform._version
from gn-api-sdk-dart.
Vi que o erro se deve ao dart:io que não funciona corretamente ao instanciar ao HttpClient()
o correto é verificar se está na web ou no mobile e optar pelo dart:io ou pelo dart:html
`import 'package:flutter/foundation.dart' show kIsWeb;
import 'dart:io' as mobile;
import 'dart:html' as html;
if (kIsWeb) {
// usar dart:html aqui
} else {
// usar dart:io aqui
}`
from gn-api-sdk-dart.
Vi que o erro se deve ao dart:io que não funciona corretamente ao instanciar ao HttpClient() o correto é verificar se está na web ou no mobile e optar pelo dart:io ou pelo dart:html
`import 'package:flutter/foundation.dart' show kIsWeb; import 'dart:io' as mobile; import 'dart:html' as html;
if (kIsWeb) { // usar dart:html aqui } else { // usar dart:io aqui }`
se for web o que vc faz depois? apos esse codigo esta funcionando no web?
from gn-api-sdk-dart.
Vi que o erro se deve ao dart:io que não funciona corretamente ao instanciar ao HttpClient() o correto é verificar se está na web ou no mobile e optar pelo dart:io ou pelo dart:html
import 'package:flutter/foundation.dart' show kIsWeb; import 'dart:io' as mobile; import 'dart:html' as html; if (kIsWeb) { // usar dart:html aqui } else { // usar dart:io aqui }
se for web o que vc faz depois? apos esse codigo esta funcionando no web?
Essa alteração têm que ser feita dentro da própria package do gerencianet em "gerencianet-1.2.1\lib\src\request.dart" que é onde ocorre o erro. Estou vendo aqui o que posso fazer, mas o esperado é a equipe do GN alterar e subir uma nova versão dessa API.
(Suporte, KD vc????)
from gn-api-sdk-dart.
Vi que o erro se deve ao dart:io que não funciona corretamente ao instanciar ao HttpClient() o correto é verificar se está na web ou no mobile e optar pelo dart:io ou pelo dart:html
import 'package:flutter/foundation.dart' show kIsWeb; import 'dart:io' as mobile; import 'dart:html' as html; if (kIsWeb) { // usar dart:html aqui } else { // usar dart:io aqui }
se for web o que vc faz depois? apos esse codigo esta funcionando no web?
Essa alteração têm que ser feita dentro da própria package do gerencianet em "gerencianet-1.2.1\lib\src\request.dart" que é onde ocorre o erro. Estou vendo aqui o que posso fazer, mas o esperado é a equipe do GN alterar e subir uma nova versão dessa API. (Suporte, KD vc????)
@ranulfo você consegue criar um pullrequest com essa correção?
from gn-api-sdk-dart.
qual a solução para funcionar na web? não estou conseguindo
from gn-api-sdk-dart.
qual a solução para funcionar na web? não estou conseguindo
Eu deixei de usar a package do flutter e passei o usar as funções do gerencianet diretamente no backend usando a package em node.js "gn-api-sdk-node"
from gn-api-sdk-dart.
qual a solução para funcionar na web? não estou conseguindo
Eu deixei de usar a package do flutter e passei o usar as funções do gerencianet diretamente no backend usando a package em node.js "gn-api-sdk-node"
mas é possível obter o payment_token pelo backend?
from gn-api-sdk-dart.
Estamos desenvolvendo uma solução para utilizar o plugin na versão Web, Mobile e também no backend.
Atualmente, não é possível utilizar o plugin na versão web do Framework devido ao fato das requisições acontecerem pelo lado do cliente.
from gn-api-sdk-dart.
qual a solução para funcionar na web? não estou conseguindo
Eu deixei de usar a package do flutter e passei o usar as funções do gerencianet diretamente no backend usando a package em node.js "gn-api-sdk-node"
mas é possível obter o payment_token pelo backend?
sim, é possível obter o token no serviço. veja o exemplo que uso em node.js:
var JSEncrypt = require('node-jsencrypt');
var require = require('request');
//var config = require('./gn_credentials');
module.exports = getPaymentToken = async (pay_token, cardData, isDebug) => {
const getSalt = (pay_token) => {
return new Promise((resolve, reject) => {
let options = {
method: 'get',
url: 'https://tokenizer.gerencianet.com.br/salt', // Rota para homologação é a mesma
headers: {
'account-code': pay_token
}
};
return require(options, function (error, response, body) {
if (error) return reject(error);
try {
resolve(body);
} catch (e) {
reject(e);
}
});
});
}
const getPublicKey = (pay_token) => {
return new Promise((resolve, reject) => {
let options = {
'method': 'GET',
'url': isDebug ? 'https://sandbox.gerencianet.com.br/v1/pubkey?code=' + pay_token : 'https://api.gerencianet.com.br/v1/pubkey?code=' + pay_token // Rota para produção
};
return require(options, function (error, response, body) {
if (error) return reject(error);
try {
resolve(body);
} catch (e) {
reject(e);
}
});
});
}
const saveCardData = (pay_token, saltTokenizer, publicKey, cardData) => {
return new Promise(async (resolve, reject) => {
cardData.salt = saltTokenizer;
let crypt = await new JSEncrypt();
try {
await crypt.setPublicKey(publicKey);
var encryptedCardData = await crypt.encrypt(JSON.stringify(cardData));
} catch (e) {
reject(e);
}
let options = {
'method': 'POST',
'url': isDebug ? 'https://sandbox.gerencianet.com.br/v1/card' : 'https://tokenizer.gerencianet.com.br/card',
//'url': 'https://tokenizer.gerencianet.com.br/card', // Rota para produção
'headers': {
'account-code': pay_token,
'Content-Type': 'application/json'
},
body: JSON.stringify({ "data": encryptedCardData })
};
return require(options, function (error, response, body) {
if (error) return reject(error);
try {
resolve(body);
} catch (e) {
reject(e);
}
});
});
}
var saltTokenizer = await getSalt(pay_token);
saltTokenizer = JSON.parse(saltTokenizer);
//console.log("saltTokenizer: " + saltTokenizer.data);
//console.log("");
var publicKey = await getPublicKey(pay_token);
publicKey = JSON.parse(publicKey);
//console.log("publicKey: " + publicKey.data);
//console.log("");
const savedCardData = await saveCardData(pay_token, saltTokenizer.data, publicKey.data, cardData);
//console.log("cardData: " + savedCardData);
return savedCardData;
}
from gn-api-sdk-dart.
Vou testar, obrigado
from gn-api-sdk-dart.
Related Issues (4)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gn-api-sdk-dart.