ECサイトにQuickbookの決済処理を実装したい。私はたくさん検索しますが、適切な解決策を見つけることができません。
3 に答える
テスト/開発マーチャント アカウントが必要な場合は、ここで入手方法を説明します。それ以外の場合は、残りの手順で実際の Intuit ユーザー名/パスワードを使用します。
QuickBooks wikiの指示に従って、デスクトップ モードで登録します。
登録後、アプリ ログイン、アプリ ID、接続チケットが必要です。実際の登録プロセスからアプリ ログインとアプリ ID を取得し、短い接続プロセスを経た後に接続チケットを取得します。
GitHub からQuickBooks PHP DevKitをダウンロードします: https://github.com/consolibyte/quickbooks-php
このサンプル ファイルを見てください: docs/example_merchant_services.php ( GitHub のコードへの直接リンクについては、ここをクリックしてください) 。
アプリ ログイン / 接続チケットを入力します。
docs/example_merchant_service.php ファイルの残りの部分を読んで、クレジット カードへの請求方法、クレジット カードの承認方法などの例を確認してください。
docs/ ディレクトリ (example_merchant_service_wallet.php など) には他にもいくつかの例があり、PCI 準拠の方法で Intuit を使用してクレジット カードを保存する方法なども示しています。
結果のコードは次のようになります。
<?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
特定の数量がある場合は、サポート チケットを発行してください。
https://developer.intuit.com/Support/インシデント
ありがとう
開発者向け: 上記のドキュメントに、キーを生成する手順が記載されています。開発中にいくつかの質問に直面したので、これについてさらに意見を述べさせてください。
ステップ 3:
サーバーで CSR を生成します。これは、*nix シェル プロンプトから、または Windows で Cygwin を使用して、次の 2 つのコマンドで実行できます。CSR の [Common Name] は、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 フォルダーから秘密鍵を作成することをお勧めします。これを行うには、サイトのルート フォルダー (public_html/key.php) に新しいkey.phpファイルを作成します。
shell_exec('openssl genrsa -out ../host.key 1024');
このコードを正常に実行すると、サーバーの public_html フォルダーの外にある host.key が見つかります。
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ファイルを生成するために使用されます。