Я хочу реализовать процесс оплаты Quickbook для сайта электронной коммерции. Я много ищу, но не могу найти правильного решения.
Реализуйте процесс оплаты с помощью Quickbook (Intuit Payment)
Ответы (3)
Если вам нужна учетная запись продавца для тестирования/разработки, инструкции приведены здесь. получить один. В противном случае используйте свое фактическое имя пользователя/пароль Intuit для остальных шагов.
Следуйте инструкциям на нашей вики QuickBooks, чтобы зарегистрироваться в DESKTOP. режим.
После регистрации у вас должны быть логин приложения, идентификатор приложения и билет подключения. Вы получите логин приложения и идентификатор приложения в процессе фактической регистрации, а затем билет на подключение после прохождения короткого процесса подключения.
Загрузите QuickBooks PHP DevKit с GitHub: https://github.com/consolibyte/quickbooks-php
Посмотрите на этот пример файла: docs/example_merchant_services.php (нажмите здесь, чтобы прямая ссылка на код на GitHub)
Заполните логин приложения / тикет подключения.
Прочтите остальную часть этого файла docs/example_merchant_service.php, чтобы найти примеры того, как списывать средства с кредитных карт, авторизовать кредитные карты и т. д.
В каталоге docs/ есть несколько других примеров (example_merchant_service_wallet.php и т. д.), которые также показывают, как хранить кредитные карты с помощью Intuit в соответствии с требованиями PCI и т. д.
Ваш результирующий код должен выглядеть примерно так:
<?php
// Include the QuickBooks files
require_once 'QuickBooks.php';
$dsn = null;
$path_to_private_key_and_certificate = null;
$application_login = 'qbms.consolibyte.com';
$connection_ticket = 'TGT-157-p3PyZPoH3DtieLSh4ykp6Q';
// Create an instance of the MerchantService object
$MS = new QuickBooks_MerchantService(
$dsn,
$path_to_private_key_and_certificate,
$application_login,
$connection_ticket);
// Now, let's create a credit card object, and authorize an amount agains the card
$name = 'Keith Palmer';
$number = '5105105105105100';
$expyear = date('Y');
$expmonth = date('m');
$address = '56 Cowles Road';
$postalcode = '06279';
$cvv = null;
// Create the CreditCard object
$Card = new QuickBooks_MerchantService_CreditCard($name, $number, $expyear, $expmonth, $address, $postalcode, $cvv);
// We're going to authorize $295.00
$amount = 295.0;
if ($Transaction = $MS->authorize($Card, $amount))
{
print('Card authorized!' . "\n");
print_r($Transaction);
}
Вы можете проверить следующий сайт.
https://developer.intuit.com/docs/030_qbms
Если у вас есть какие-то конкретные qts, пожалуйста, поднимите билет в службу поддержки.
https://developer.intuit.com/Support/Incident
Спасибо
Для разработчиков: в документе, предложенном выше, вы найдете шаг для создания ключа. Позвольте мне дать вам больше информации об этом, так как я столкнулся с некоторыми вопросами во время разработки.
Шаг 3.
Сгенерируйте CSR на своем сервере. Вы можете сделать это с помощью следующих двух команд из командной строки * nix или с помощью Cygwin в Windows. [Общее имя] для CSR должно иметь вид: your-https-hostname.com:your-application-login. Не следует вводить адрес электронной почты при появлении запроса. Не следует вводить пароль.
openssl genrsa -out host.key 1024 openssl req -new -nodes -key host.key -out host.csr
Предложения:
Если вы запутались или не знаете, что именно нужно делать с этими командами, то вот решение, если вы php-разработчик.
Сначала создайте закрытый ключ, используя следующий код php. Вы должны использовать http://php.net/manual/en/function.shell-exec.php для выполнения вышеуказанной команды. Из соображений безопасности рекомендуется создать закрытый ключ из папки public_html или www вашего сайта. Для этого вы можете написать новый файл key.php в корневой папке вашего сайта (public_html/key.php).
shell_exec('openssl genrsa -out ../host.key 1024');
После успешного выполнения этого кода вы найдете host.key на своем сервере за пределами папки public_html.
Загрузите этот файл с помощью FTP или cpanel и выполните следующие шаги в терминале вашей локальной системы (для пользователей * nix). Вам будет предложено ввести некоторую информацию о вашей стране и все такое, просто оставьте их пустыми, указав «.». - это необходимо, иначе вы не сможете получить подписанный сертификат.
gunjan@gunjan:/var/www/html$ openssl req -new -nodes -key host.key -out host.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:<very_important_step_copy_CN_from_developer_account>
Email Address []:.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
После этого вы получите строку сертификата, подписанную csr. Скопируйте его и сохраните в файл .txt, он будет использоваться для создания файла .pem, который будет использоваться при подключении к продавцу.