квадратная касса, дублирующая пользователей

Я использую квадратную кассу для создания экрана оплаты

$checkout = new \SquareConnect\Model\CreateCheckoutRequest();   
$checkoutUrl = $result->getCheckout()->getCheckoutPageUrl();

Я успешно получаю элементы строк и налоги, имена и цены и т. Д. Мы передаем адрес электронной почты и имя пользователя этой конечной точке, которые успешно отображаются на экране оформления заказа.

В моем приложении пользователи могут создавать учетные записи, которые также создают квадратных клиентов, мы храним идентификатор клиента в нашей базе данных.

Когда я совершаю платеж, меня перенаправляют на страницу моего сайта:

$checkout->setRedirectUrl("https://www.example.net/order-complete");

Я успешно получаю переменные get.

** Примечание: я отключил мгновенные профили!

Транзакция создает дубликат НОВОГО клиента в квадратной задней части POS вместо привязки транзакции к указанному нами адресу электронной почты.

Это создает новый идентификатор пользователя, что означает, что мы не можем связать элементы, которые заказывает пользователь, вместе, потому что каждый заказ создает нового пользователя.

Почему это? Как привязать заказ к пользователю ????

Нужно ли мне создавать страницы заказов клиентов и вручную создавать заказ, используя:

$api = createChargeRequest();

Спасибо, меня бесит то, что вы не можете получить кассу, чтобы привязать заказ к покупателю. Я искал веб-сайты и документацию, но не нашел ничего, кроме мгновенных профилей, которые были отключены.


person dean williams    schedule 07.01.2019    source источник


Ответы (1)


В настоящее время Checkout API не проверяет дубликаты клиентов и всегда создает нового клиента на основе предоставленной информации.

Для большего контроля над созданием ваших клиентов вам следует изучить Square Payment Form и API транзакций, которые позволят вам создать свой собственный форму кредитной карты и прикрепите клиента к платежу (т. е. если он уже существует, вы можете найти его customer_id и передать его вместе с запросом).

person sjosey    schedule 07.01.2019
comment
Спасибо, я так зол, что мне нужно закодировать всю страницу, добавить поля адреса и т. Д., Когда square мог просто реализовать такое простое дополнение, позволив разработчикам добавлять что-то, что проверяет существующего клиента по электронной почте или идентификатору. Спасибо за помощь - person dean williams; 08.01.2019
comment
Итак, проведя эти 2 часа, читая документацию и просматривая всю сеть в поисках ответа, я не могу получить наборы полей для создания фреймов, как указано в документации. Нет, где ясно, должны ли наборы полей идти в подмножествах и т. Д. Здесь: docs.connect.squareup.com/payments/sqpaymentform/what-it-does Чего я хочу достичь, но с адресом: (есть ли пример фактического кода для этого изображения) - person dean williams; 08.01.2019
comment
Взгляните на наши образцы здесь: docs.connect.squareup.com/sample-app (все помеченные как образцы обработки платежей используют форму оплаты). Форма оплаты - это, по сути, просто поля, которые наш серверный javascript будет искать и заменять фреймами. Вы можете интегрировать эти поля в свою форму (чтобы вы могли включать поля адреса, имени и т. Д.). - person sjosey; 08.01.2019
comment
Зачем вы ответили на вопрос, sjosey? Я дал понять, что прочитал документацию. Мне нужно добавить адрес доставки, и, следуя документации (которая очень плохо написана и очень неясна), я не могу отобразить поля адреса. Можете ли вы предоставить рабочий пример? - person dean williams; 08.01.2019
comment
У нас нет примера, включающего адреса. Однако для этого можно создать простую HTML-форму. Пример: <form...> <div id="sq-card-number"></div> // остальные поля оплаты // поля адреса: <input type="text" name="address_line_1"> <input type="text" name="address_line_2"> <input type="text" name="city"> // и т.д ... </form> Приносим извинения за ужасное форматирование, SO не разрешает блоки кода в комментариях. - person sjosey; 09.01.2019
comment
Я закончил тем, что написал свою собственную форму и проверку ошибок, а не то, что, как я ожидал, мне нужно было делать. Спасибо за помощь. - person dean williams; 09.01.2019