2009-07-30 4 views
9

मैं एक PHP परियोजना पर काम कर रहा हूं और एक अच्छा authorize.net गेटवे की तलाश में हूं। मुझे परिपक्व कोड के साथ कुछ चाहिए जो परीक्षण किया गया है। लक्ष्य authorize.net एपीआई दस्तावेज़ों के आधार पर खुद को पूरी तरह से लिखने और परीक्षण करने से बचने के लिए है।अच्छा authorize.net PHP पुस्तकालय

क्या किसी को इसके लिए किसी भी अच्छे PHP पुस्तकालयों के बारे में पता है? मैंने Google को कोई फायदा नहीं हुआ है।

उत्तर

8

Authorize.net अपनी ही SDK for PHP and other languages प्रदान करता है। शायद कहीं और देखने की जरूरत नहीं है।

+1

मुझे यकीन नहीं है कि उन्होंने मूल रूप से प्रश्न पूछे जाने पर इन्हें प्रदान किया था ... केवल एक कल्पना थी। :) – markwatson

+0

@markwatson मुझे यकीन है कि ऐसा नहीं था क्योंकि मैंने एक ही समय में एक को लागू किया था और यदि उनके पास एक एसडीके होता तो मैं इसका इस्तेमाल करता था :) –

+0

-1 के साथ क्या है? –

0

http://www.micahcarrick.com/04-19-2005/php-authorizenet-aim-interfacing-class.html

वर्ग मैं का उपयोग है। उपयोग करने के लिए काफी सरल है। यद्यपि आप अभी भी एपीआई में खोदने की जरूरत है, यह पता लगाने के लिए कि आप कौन से चर भेजना चाहते हैं और आप कौन सी नहीं हैं।

2

Magento Authorize.Net का समर्थन करता है। Magento की अच्छी तरह से परीक्षण और अच्छी गुणवत्ता कोड के रूप में आपको आवश्यक कोड निकालें।

+1

मुझे लगता है कि वह एक रेडी-टू-जाना समाधान के लिए और अधिक देख रहा था। Magento के कोड के माध्यम से खोदना – Mark

5

आप भाग्यशाली हैं। यह वही है मैं (सिम प्रवेश द्वार के लिए) का उपयोग है:

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']; 
} 
+2

की तलाश में अधिक काम हो सकता है बस एक नोट है कि $ x_tran_key Authorize.Net लेनदेन कुंजी नहीं है। यह MD5 हैश है कि कोई सेटिंग के तहत अपने खाते पर उत्पन्न करता है। मैं आपका कोड चला रहा था और जब तक मैं इस तथ्य को समझ नहीं पाया तब तक यह काम नहीं कर सका। – Volomike

+0

क्या इस विधि का उपयोग करने के लिए कोई वास्तविक सुरक्षा जुर्माना है? यह अभी भी किस हमले के लिए खुला है? –

+0

तब से मैंने और अधिक जानना, मैं 'रैंड' का उपयोग नहीं करता, बल्कि इसके बजाय 'mcrypt_create_iv' का उपयोग करता हूं। अगर मैंने आज ऐसा किया, तो मैं उनके एपीआई का उपयोग करूंगा। – Chloe

1

इस CodeIgniter में उपयोग करने के लिए एक सभ्य पुस्तकालय है के लिए उपयोग है, लेकिन यह कर सकते हैं हो स्टैंड-अलोन प्रयोग किया है:

http://code.google.com/p/authorizenetlib/downloads/detail?name=Authorize_net-1.0.php

क्रेडिट: कोड के लिए जेम्स गिफ़र्ड।

+3

लिंक अब मान्य नहीं प्रतीत होता है। – Seaux

1

मैंने अंतर्निहित Authorize.Net ड्राइवर के साथ कोहाना 2.3.x में शामिल भुगतान मॉड्यूल का उपयोग किया है। http://docs.kohanaphp.com/addons/payment

2

मुझे लगता है कि simdata.php सिर्फ लेन-देन डेटा शामिल हैं ... राशि, व्यक्ति की firstname, आदि

2

तरह जेम्स जिफोर्ड CodeIgniter के लिए कुछ Authorize.net कोड बनाया। यहाँ डाउनलोड करें ...

http://jamesgifford.com/programming/codeigniter-authorize-net-library/

मैं php एसडीके मैं सीधे Authorize.nets देव साइट से मिला उपयोग कर रहा हूँ ...

http://developer.authorize.net/downloads/

5

फॉर्म विधि इस जानकारी को प्रेषित करने का एक असुरक्षित तरीका है। एक बेहतर शर्त उनके एपीआई एआईएम विधि का उपयोग कर रही है।

एक महान ट्यूटोरियल यहां पाया जा सकता: http://www.johnconde.net/blog/tutorial-integrating-the-authorizenet-aim-api-with-php