Histórico de mensagens sobre card

EXIBINDO CONVERSAS RECENTES:

Texto: card
# módulos-plugins
Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Esse array meta_data é customizável, todos esses que começam com wc é que o Woocommerce salva. A efí salva o _gn_status_card. Você pode adaptar o plugin para salvar as informações que deseja, através do update_meta.

# módulos-plugins
Avatar discord do usuario d3xt3r.com

d3xt3r.com

Ver Respostas

"meta_data": [
{
"id": 533,
"key": "_gn_status_card",
"value": "approved"
},
{
"id": 532,
"key": "_wc_order_attribution_device_type",
"value": "Desktop"
},
{
"id": 530,
"key": "_wc_order_attribution_session_count",
"value": "1"
},
{
"id": 527,
"key": "_wc_order_attribution_session_entry",
"value": "https://loja.cessetembro.com.br/produto/aba-analise-comportamental-do-espectro-autista/"
},
{
"id": 529,
"key": "_wc_order_attribution_session_pages",
"value": "36"
},
{
"id": 528,
"key": "_wc_order_attribution_session_start_time",
"value": "2024-09-05 23:19:21"
},
{
"id": 525,
"key": "_wc_order_attribution_source_type",
"value": "typein"
},
{
"id": 531,
"key": "_wc_order_attribution_user_agent",
"value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
},
{
"id": 526,
"key": "_wc_order_attribution_utm_source",
"value": "(direct)"
},
{
"id": 522,
"key": "is_vat_exempt",
"value": "no"
}
],

# assinaturas
Avatar discord do usuario jwesleylima

jwesleylima

Ver Respostas

Bom dia, pessoal. Beleza? Tenho duas dúvidas. Está grande, mas tentei exemplificar para ficar mais claro

Contexto da minha integração: Uso Assinaturas por link, apenas "credit_card", em NodeJS.

-> DÚVIDA 1:

é possível eliminar a necessidade do meu cliente preencher o "Endereço de Cobrança"?

Já crio a subscription com "request_delivery_address" como false, mas esse é o de entrega apenas. Há um parecido para endereço de cobrança?

Isso otimizaria a quantidade de campos para o cliente preencher. Além disso, como esse endereço geralmente não é exigido na maioria dos formulários de assinatura de outras plataformas de pagamento, alguns clientes podem se perguntar por que algum "endereço" é necessário para um produto digital como o meu. O "porque" não fica exatamente claro para o cliente na página de checkout.

---

-> DÚVIDA 2

É possível gerar um link de assinatura que "lembra" dos dados do cliente?

Exemplo: inicialmente um cliente escolhe o plano mensal. Porém, 3 meses depois, ele decide mudar para o plano anual para economizar.

Talvez não seja possível fazer uma mudança dinâmica de planos. Nesse caso, seria necessário cancelar a assinatura atual e iniciar uma nova?

A questão é:

Como fazer uma mudança de planos suave para o cliente? Há uma forma de criar essa nova assinatura/link de assinatura, agora com o plano "anual", sem que o cliente precisa preencher todos os campos novamente?

Agradeço desde já 🤔🤝

# cartões
Avatar discord do usuario josneidrosdek

josneidrosdek

Ver Respostas

Estou realizando uma simulação de pagamento dentro do homologação utilizando o token gerado https://efipay.github.io/js-payment-token-efi/ por algum motivo as transação estão retornando:

{
"code": 200,
"data": {
"installments": 1,
"installment_value": 2500,
"charge_id": 44232731,
"status": "unpaid",
"refusal": {
"reason": "Transação não autorizada, tente novamente mais tarde.",
"retry": true
},
"total": 2500,
"payment": "credit_card"
}
}

preciso validar agora o cenário ideal com pagamento aprovado

# comercial
Avatar discord do usuario thalita_efi

thalita_efi

Ver Respostas

Boa tarde, Ricardo!
Tudo bem?

Te chamei no privado.

# assinaturas
Avatar discord do usuario jwesleylima

jwesleylima

Ver Respostas

Bom dia, pessoal.

Estou com dúvida sobre o comportamento do "expire_at" quando o método de pagamento da assinatura é apenas cartão de crédito (payment_method: 'credit_card')

Vi que esse valor é para o vencimento do boleto. Então, se uso credit_card apenas, a data nesse campo é irrelevante?

Se bem que essa data aparece no checkout como "Vencimento", mesmo com credit_card como método de pagamento.

Aproveitando o gancho, outra dúvida: o link de pagamento de assinatura é permanente? No sentido de não expirar? Dá pra adicionar um tempo limite em um link?

# cartões
Avatar discord do usuario _acb09

_acb09

Ver Respostas

@igor_efi - Passando apenas para informar, que, o motivo deste erro, foi chamar refundCharge ao invés de refundCard, visto que o pagamento foi feito pelo cartão de crédito.

# cartões
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

@_acb09, a versão da SDK de php 1.9 ja possui a função refundCard

# cartões
Avatar discord do usuario _acb09

_acb09

Ver Respostas

Estou implementando a validação do cartão de crédito com o SDK, ou seja:
Cobrar 3 reais e estornar.

Ao cobrar está dando certo, porém ao estornar eu recebo:

ErrorException {#1983 // app\Http\Controllers\Api\Checkout\CreditCardController.php:99
#message: "Undefined array key "refundCharge""
#code: 0

# cartões
Avatar discord do usuario juizmill

juizmill

const data = {
brand: this.cardBrand,
number: this.card_number,
cvv: this.card_cvv,
expirationMonth: this.card_month,
expirationYear: this.card_year,
reuse: false,
};

const result = await EfiPay.CreditCard
.setAccount('XXXXX') // Removi a minha chave
.setEnvironment('sandbox')
.setCreditCardData(data).getPaymentToken();

payment_token = result.payment_token;

# cartões
Avatar discord do usuario aguiar.dev

aguiar.dev

eu faço assim:

ts
import as EfiPay from "payment-token-efi"

export type CreditCardProps = {
brand: string
cardNumber: string
cvv: string
expirationMonth: string
expirationYear: string
}

interface PaymentTokenResponse {
card_mask: string
payment_token: string
}

export const getPaymentToken = async (card: CreditCardProps): Promise => {
try {
const creditCard = EfiPay.default.CreditCard
.setAccount(import.meta.env.VITE_EFI_BANK_PAYEE_CODE)
.setEnvironment(import.meta.env.VITE_EFI_BANK_ENVIRONMEN)
.setCreditCardData({
brand: card.brand,
number: card.cardNumber,
cvv: card.cvv,
expirationMonth: card.expirationMonth,
expirationYear: card.expirationYear,
reuse: false
})

return await creditCard.getPaymentToken() as PaymentTokenResponse
} catch (error: any) {
console.log('Código: ', error.code);
console.log('Nome: ', error.error);
console.log('Mensagem: ', error.error_description);
}
}

# cartões
Avatar discord do usuario kayandesouza

kayandesouza

Ver Respostas

Olá, Bom dia pessoal. Estou com um problema de implementação do sistema de pagamento do cartão de credito. Segui o fluxograma da documentação e adicionei a função que gera o 'payment_token' para envio do mesmo para a api que vai gerar a cobrança.

Estou usando a versão do pacote "payment-token-efi": "^3.0.3" do NPM o qual esta em um App que utiliza Expo.
A função que estou utilizando :

const generatePaymentToken = async () => {
try {
const result = await EfiPay.CreditCard
.debugger(true)
.setAccount(Token da conta)
.setEnvironment('sandbox')
.setCreditCardData({
brand: 'visa',
number: '4485785674290087',
cvv: '123',
expirationMonth: '05',
expirationYear: '2031',
reuse: false
})
.getPaymentToken();

console.log('payment_token', result.payment_token);
console.log('card_mask', result.card_mask);

} catch (error) {
console.log(error);
console.log('Código: ', error.code);
console.log('Nome: ', error.error);
console.log('Mensagem: ', error.error_description);
}
}

O erro que apresenta após a execução e :
imagem enviada na mensagem pelo usuario kayandesouza
imagem enviada na mensagem pelo usuario kayandesouza
imagem enviada na mensagem pelo usuario kayandesouza

# devs
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

O trial_days é informado dentro do atributo credit_card. Segue um exemplo:

json
{
"payment": {
"credit_card": {
"customer": {
"name": "Gorbadoc Oldbuck",
"cpf": "94271564656",
"email": "[email protected]",
"birth": "1990-08-29",
"phone_number": "5144916523"
},
"trial_days": 7,
"payment_token": "",
"billing_address": {
"street": "Avenida Juscelino Kubitschek",
"number": "909",
"neighborhood": "Bauxita",
"zipcode": "35400000",
"city": "Ouro Preto",
"complement": "",
"state": "MG"
}
}
}
}

# devs
Avatar discord do usuario igor_efi

igor_efi

Ver Respostas

Boa tarde, @luizfernando6187! Tudo bem?

A API oferece o atributo trial_days, que permite definir um período de teste gratuito para assinaturas do tipo cartão de crédito. Esse atributo está disponível somente quando o pagamento é realizado com credit_card.

# assinaturas
Avatar discord do usuario joaovicto

joaovicto

Ver Respostas

Olá bom dia. utilizei o endpoint para efetuar um estorno. /v1/charge/card/:id/refund
na aplicação da efi mostra que foi devolvido. porém no banco ainda não consta. já havia feito esse mesmo teste antes e tudo ok.
fiz o teste na aplicação ontem e hj ainda não consta. há alguma chance de ser com o banco que eu efeituei a compra com o cartão ?

# freelancer
Avatar discord do usuario davydcardoso

davydcardoso

Bom dia a todos!
Me chamo Davyd Kewen, sou desenvolvedor Fullstack com 5 anos de experiência na área.
Me encontro disponível para projetos e trabalhos.

Estou disponibilizando meus dados de contato
Email: [email protected]
WhatsApp: +55 (62) 9.8305-5581

# assinaturas
Avatar discord do usuario gil.brandao0067

gil.brandao0067

E antes que pergunte, o 'SubscriptionID' está sendo preenchido na 'ViewPayPlanCreditCard'

# cartões
Avatar discord do usuario lucasfelipes23

lucasfelipes23

Ver Respostas

curl --location 'https://cobrancas-h.api.efipay.com.br/v1/charge/one-step' \
--header 'Authorization: token' \
--header 'Content-Type: application/json' \
--data-raw '{
"items": [
{
"name": "Meu Produto",
"value": 1000,
"amount": 1
}
],
"payment": {
"credit_card": {
"customer": {
"name": "Gorbadoc Oldbuck",
"cpf": "94271564656",
"email": "[email protected]",
"birth": "1990-08-29",
"phone_number": "5144916523"
},
"installments": 1,
"payment_token": "9621af918d06297342bba69fa32e65dbc43542c0",
"billing_address": {
"street": "Avenida Juscelino Kubitschek",
"number": "909",
"neighborhood": "Bauxita",
"zipcode": "35400000",
"city": "Ouro Preto",
"complement": "",
"state": "MG"
}
}
}
}'

# cartões
Avatar discord do usuario marcelocaser

marcelocaser

try {
window.EfiJs.CreditCard
.setAccount('Identificador_de_conta_aqui')
.setEnvironment('production') // 'production' or 'sandbox'
.setCreditCardData({
brand: 'visa',
number: '4485785674290087',
cvv: '123',
expirationMonth: '05',
expirationYear: '2029',
reuse: false
})
.getPaymentToken()
.then(data => {
const payment_token = data.payment_token;
const card_mask = data.card_mask;

console.log('payment_token', payment_token);
console.log('card_mask', card_mask);
}).catch(err => {
console.log('Código: ', err.code);
console.log('Nome: ', err.error);
console.log('Mensagem: ', err.error_description);
});
} catch (error) {
console.log('Código: ', error.code);
console.log('Nome: ', error.error);
console.log('Mensagem: ', error.error_description);
}

# cartões
Avatar discord do usuario hignacio.

hignacio.

Ver Respostas

Boa noite, ao executar o teste da createOneStepCard, recebi o erro de curl_setopt_array(): cannot represent a stream of type Output as a STDIO FILE in guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 70, outros exemplos deram certo, conseguem ajudar ? @guilherme_efi