áreas tienda stripe servicio ropa que presta para panama funciona fees como colombia stripe-payments

stripe-payments - tienda - stripe vs paypal



Stripe, ¿es posible buscar a un cliente por su correo electrónico? (8)

Me preguntaba si era posible buscar a un cliente solo por su dirección de correo electrónico al usar la API de Stripe.

La documentation solo indica la búsqueda por:

created, ending_before, limit, starting_after

pero no email

Me gustaría evitar tener que listar a todos mis clientes para encontrar cuáles tienen las mismas direcciones de correo electrónico.


ACTUALIZAR: Stripe ahora permite buscar por correo electrónico

https://stripe.com/docs/api/php#list_customers

/** * Remember that Stripe unfortunately allows multiple customers to have the same email address. * If we ever have more customers with a matching email address than can be returned by a single ''page'' of the API request, we''ll need a more complicated approach. * @see https://.com/a/38492724/470749 * @param string $emailAddress * @return array */ public function getCustomersByEmailAddress($emailAddress) { try { $response = /Stripe/Customer::all(["limit" => 100, "email" => $emailAddress]); return $response->data; } catch (/Exception $e) { Log::error($e); return []; } }


Como usted especificó eso

La documentación solo indica que debe buscar por created, ending_before, limit y beginning_after, pero no por "email".

Tienes razón, no puedes buscar usando correos electrónicos.

Si aún desea hacerlo, lo que puede hacer es obtener una lista de todos los clientes y filtrar la respuesta que recibe por email .

Por ejemplo, en ruby puedes hacerlo de la siguiente manera:

customers = Stripe::Customer.all customer_i_need = customers.select do |c| c.email == "[email protected]" end

PD: Stripe puede tener varios clientes asociados con una dirección de correo electrónico.


Debe recuperar y almacenar el ID del cliente de Stripe junto con los demás detalles del cliente en su base de datos. A continuación, puede buscar la dirección de correo electrónico en su base de datos y recuperar el registro del cliente de Stripe utilizando la identificación de cliente de Stripe.


Lo hice usando la siguiente solicitud de API. Esto no estaba disponible en los documentos de stripe. Obtuve esto rastreando su búsqueda en el área del tablero usando las Herramientas de desarrollo del navegador.

url :https://api.stripe.com/v1/search?query="+email+"&prefix=false", method: GET headers: { "authorization": "Bearer Your_seceret Key", "content-type": "application/x-www-form-urlencoded", }

Advertencia Esto utiliza una API no documentada que es específica del tablero. Si bien podría funcionar hoy, no hay garantía de que continuará funcionando en el futuro.


No puede buscar directamente por correo electrónico.

Sin embargo, puede hackear un poco para hacer una lista de todos los usuarios y cuidar su correo electrónico.

Aquí está mi código (PHP):

$last_customer = NULL; $email = "[email protected]"; while (true) { $customers = /Stripe/Customer::all(array("limit" => 100, "starting_after" => $last_customer)); foreach ($customers->autoPagingIterator() as $customer) { if ($customer->email == $email) { $customerIamLookingFor = $customer; break 2; } } if (!$customers->has_more) { break; } $last_customer = end($customers->data); }


Stripe API no es compatible con ninguna función de búsqueda por correo electrónico. Tienen esta búsqueda en su tablero de instrumentos, pero no la han lanzado a la API; desde el concepto arquitectónico parece que no hay posibilidad o plan de banda para incluir esto en API; cada objeto en su API solo se puede recuperar mediante esa identificación de objetos específicos dada por stripe mientras se crea. Puede ser, lo han mantenido como un ámbito para la participación de desarrolladores de aplicaciones de terceros.

Por lo tanto, la solución obvia es almacenar los clientes en su propia base de datos que desea buscar en el futuro, como ha dicho above

Por cierto, para una solución temporal, si ya ha usado mucho la API de stripe y hay muchos datos de clientes que ahora necesita buscar, la única forma es ir a través de la funcionalidad documentation y compilar la base de datos para su propio propósito; por supuesto, debe usar el atajo de paginación para recorrer la lista completa para hacerlo.

$customers = /Stripe/Customer::all(array("limit" => 3)); foreach ($customers->autoPagingIterator() as $customer) { // Do something with $customer }


Stripe ahora le permite filtrar clientes por correo electrónico.

documentation

Map<String, Object> options = new HashMap<>(); options.put("email", email); List<Customer> customers = Customer.list(options).getData(); if (customers.size() > 0) { Customer customer = customers.get(0); ...

Esto es importante para ayudar a garantizar que no cree clientes duplicados. Debido a que no puede crear un cliente en Stripe y el almacenamiento de la identificación de cliente de Stripe en su sistema dentro de una transacción única, necesita construir en algunas cajas fuertes que verifiquen si existe un cliente en particular antes de crear uno nuevo. Buscar clientes por correo electrónico es importante en ese sentido.


Aquí está The Async-Await Way Este método se puede utilizar para todos los éxitos de terceros con Nodejs en particular

const configuration = { headers: { "authorization": `Bearer ${Your stripe test key}`, "content-type": "application/x-www-form-urlencoded", } }; const requestUrl = `https://api.stripe.com/v1/search? query=${''email you are to use''} &prefix=false` const emailPayment = await axios.get(requestUrl, configuration)

Axiom es Npm para crear solicitudes http ... muy simple y muerto