pagarme / pagarme-php-sdk

Other
17 stars 10 forks source link

CreateOrderRequestBuilder obriga o envio do objeto Customer inteiro, ao invés de permitir usar o customerId #42

Open lkakitani opened 4 months ago

lkakitani commented 4 months ago

Estou criando uma Order usando a API, e o builder coloca o CreateCustomerRequest como parâmetro obrigatório no init.

Fatal error: Uncaught TypeError: PagarmeApiSDKLib\Models\Builders\CreateOrderRequestBuilder::init(): Argument #2 ($customer) must be of type PagarmeApiSDKLib\Models\CreateCustomerRequest, null given, called in [..] on line 152 and defined in /app/vendor/pagarme/pagarme-php-sdk/src/Models/Builders/CreateOrderRequestBuilder.php on line 42

https://github.com/pagarme/pagarme-php-sdk/blob/main/doc/controllers/orders.md#create-order

A documentação diz que posso usar qualquer um dos dois: image

https://docs.pagar.me/reference/criar-pedido-2

Tem alguma maneira de criar um pedido, sem precisar enviar o objeto Customer inteiro?

VictorRazera commented 3 months ago

Estou passando pelo mesmo problema. Toda vez estou tendo que enviar o CustomerOrderItemRequestBuilder com as mesmas informações. Ele acaba não criando customers duplicados por causa do documento mas passar toda hora é ruim, você achou alguma solução? Ou alguém chegou a ter uma solução?

lkakitani commented 3 months ago

Até agora não consegui achar nenhuma solução.

VictorRazera commented 3 months ago

O único jeito que estou fazendo para que o usuário não tenha que recolocar as informações ou eu ter que armazenar todas essas informações no meu banco de dados é armazenar o customer_id com webhook de CreateOrder e aí eu verifico se o usuário tem esse customer_id no banco de dados e pego o customer pela API de GetCustomer do Pagarme e vou colocando todas as informações que a API me retornou para montar o CreateCustomerRequest de novo.

Pelo menos pro usuário soa como se eu já tivesse essas informações e ele não precisa passar tudo de novo, não é o ideal mas está servindo por enquanto