私はPHPプロジェクトに取り組んでおり、良いauthorize.netゲートウェイを探しています。成熟したコードでテストされたものが欲しい。目標は、authorize.net api docsに基づいて自分自身を作成し、テストするのを避けることです。良いauthorize.net PHPライブラリ
誰もがこれに対して良いPHPライブラリを知っていますか?私は無駄にGoogleを検索しました。私が使用するクラスです
私はPHPプロジェクトに取り組んでおり、良いauthorize.netゲートウェイを探しています。成熟したコードでテストされたものが欲しい。目標は、authorize.net api docsに基づいて自分自身を作成し、テストするのを避けることです。良いauthorize.net PHPライブラリ
誰もがこれに対して良いPHPライブラリを知っていますか?私は無駄にGoogleを検索しました。私が使用するクラスです
Authorize.netは独自のSDK for PHP and other languagesを提供しています... ...ここにダウンロードしてください。おそらく他の場所を見る必要はないでしょう。
http://www.micahcarrick.com/04-19-2005/php-authorizenet-aim-interfacing-class.html
。かなり使いやすい。あなたは、あなたが送信したい変数とそうでない変数を把握するために、まだAPIを掘り下げる必要があります。
MagentoはAuthorize.Netをサポートしています。 Magentoは十分にテストされ、良質のコードであるため、必要なコードを抽出します。
私は彼がすぐに使えるソリューションをより探していたと思います。 Magentoのコードを掘り下げることは、彼が探しているよりも多くの作業になる可能性があります – Mark
あなたは運が良かったです。これは私が(SIMゲートウェイ用)を使用するものである:
include("../../simdata.php");
...
<!--form action="https://test.authorize.net/gateway/transact.dll" method="POST"-->
<FORM action="https://secure.authorize.net/gateway/transact.dll" method="POST">
<?
$x_description = "website.com";
$currency = "";
$tstamp = time();
// Seed random number for security and better randomness.
srand(time());
$sequence = rand(1, 1000);
$data = "$x_loginid^$sequence^$tstamp^$total^$currency";
#echo "data = $data\n";
#echo $x_tran_key;
$fingerprint = bin2hex(mhash(MHASH_MD5, $data, $x_tran_key));
# php 5 only $fingerprint = hash_hmac("md5", $data, $x_tran_key);
echo ("<input type='hidden' name='x_fp_sequence' value='" . $sequence . "'>\n");
echo ("<input type='hidden' name='x_fp_timestamp' value='" . $tstamp . "'>\n");
echo ("<input type='hidden' name='x_fp_hash' value='" . $fingerprint . "'>\n");
echo ("<input type=\"hidden\" name=\"x_description\" value=\"" . $x_description . "\">\n");
echo ("<input type=\"hidden\" name=\"x_login\" value=\"$x_loginid\">\n");
echo ("<input type=\"hidden\" name=\"x_amount\" value=\"$total\">\n");
?>
<input type="hidden" name="x_first_name" value="<?=firstName($_SESSION['user']['name'])?>">
<input type="hidden" name="x_last_name" value="<?=lastName($_SESSION['user']['name'])?>">
<input type="hidden" name="x_company" value="<?=$_SESSION['user']['company']?>">
<input type="hidden" name="x_address" value="<?=$_SESSION['user']['address']?>">
<input type="hidden" name="x_city" value="<?=$_SESSION['user']['city']?>">
<input type="hidden" name="x_state" value="<?=$_SESSION['user']['state']?>">
<input type="hidden" name="x_zip" value="<?=$_SESSION['user']['zip']?>">
<input type="hidden" name="x_phone" value="<?=$_SESSION['user']['phone']?>">
<input type="hidden" name="x_email" value="<?=$_SESSION['user']['email']?>">
<input type="hidden" name="x_cust_id" value="<?=$_SESSION['user']['username']?>">
<INPUT TYPE="HIDDEN" name="x_logo_url" VALUE= "https://secure.authorize.net/mgraphics/logo_99999.gif">
<INPUT type="hidden" name="x_show_form" value="PAYMENT_FORM">
<!--INPUT type="hidden" name="x_test_request" value="TRUE"-->
<!--input type="hidden" name="x_receipt_link_method" value="POST">
<input type="hidden" name="x_receipt_link_text" value="Click for listings">
<input type="hidden" name="x_receipt_link_url" value="http://website.com/confirmation.php"-->
<input type="hidden" name="x_relay_response" value="TRUE">
<input type="hidden" name="x_relay_url" value="http://website.com/confirmation.php">
<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">
<input type="hidden" name="" value="">
<input type="hidden" name="" value="">
<input type="hidden" name="" value="">
<? if ($total==0) { ?>
<a href="account.php">Your Account</a>
<? } else { ?>
<INPUT type="submit" value="Accept Order">
<? } ?>
</form>
をそして、これは私がconfirmation.php
include("../../simdata.php");
#print_r($_POST);
// verify transaction comes from authorize.net and save user details
$responseCode = $_POST['x_response_code'];
if ($responseCode == 1) { // approved
$md5 = $_POST['x_MD5_Hash'];
$transId = $_POST['x_trans_id'];
$amount = $_POST['x_amount'];
$myMD5 = strtoupper(md5("$x_tran_key$x_loginid$transId$amount"));
#echo $myMD5;
#print_r ($_POST);
#print_r ($_SESSION['user']);
if ($myMD5 == $md5) { // authenticated response from authorize.net
...
} else {
$error = "Unauthenticated response.";
}
} else if (isset($_POST['x_response_code'])) { // error
$error = $_POST['x_response_reason_text'].", #".$_POST['x_response_code'].'.'.$_POST['x_response_subcode'].
'.'.$_POST['x_response_reason_code'];
}
$ x_tran_keyはAuthorize.Net Transaction Keyではないことに注意してください。設定で自分のアカウントで生成するのはMD5ハッシュです。私は何度もあなたのコードを実行していましたが、この事実を理解するまでは動作しませんでした。 – Volomike
このメソッドを使用すると実際にセキュリティ上のペナルティはありますか?これはまだ何の攻撃ですか? –
それ以上のことを知っていれば、私は 'rand'を使用せず、代わりに' mcrypt_create_iv'を使用します。今日私がこのことをした場合、私は彼らのAPIを使用します。 – Chloe
これはCodeIgniterのに使用するためのまともなライブラリであるために使用するものですが、それはすることができます
http://code.google.com/p/authorizenetlib/downloads/detail?name=Authorize_net-1.0.php
クレジット:コードのジェームス・ギフォードスタンドアロンで使用すること。
リンクは有効ではありません。 – Seaux
私は、Kohana 2.3.xに含まれているPaymentモジュールを、内蔵のAuthorize.Netドライバとともに使用しました。 http://docs.kohanaphp.com/addons/payment
私はsimdata.phpだけの量、人のファーストネームなど
ようジェームス・ギフォードは、CodeIgniterのためのいくつかのAuthorize.netコードを作成した...トランザクションデータが含まれていると思います。私はストレートAuthorize.nets devのサイトから得たPHPのSDKを使用してい
http://jamesgifford.com/programming/codeigniter-authorize-net-library/
フォームメソッドは、この情報を送信する安全性の低い方法です。より良い方法は、API AIMメソッドを使用することです。
偉大なチュートリアルでは、ここで見つけることができます: http://www.johnconde.net/blog/tutorial-integrating-the-authorizenet-aim-api-with-php
私が最初に質問したときに彼らがこれらを提供したかどうかはわかりません。 :) – markwatson
@markwatson私はそれが同じ時間に1つを実装した原因ではないと確信しています。もし彼らがSDKを持っていたら、私はそれを使用していたでしょう:) –
-1とは何ですか? –