2checkout / 2checkout-php
2Checkout PHP 库
v0.4.0
2020-05-12 14:59 UTC
Requires
- php: >=5.2.0
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-24 05:10:47 UTC
README
此库为开发者提供了一套简单的绑定,用于 2Checkout 支付 API、托管结账、即时通知服务和 Admin API。
使用时,请下载或克隆存储库。
git clone https://github.com/2Checkout/2checkout-php.git
在您的 PHP 脚本中引用。
require_once("/path/to/2checkout-php/lib/Twocheckout.php");
默认情况下,所有方法返回一个数组,或者您可以设置格式为 'json' 以获取 JSON 响应。示例:
<?php Twocheckout::format('json');
凭证和选项
提供了以下凭证和选项的设置方法。
<?php // Your sellerId(account number) and privateKey are required to make the Payment API Authorization call. Twocheckout::privateKey('BE632CB0-BB29-11E3-AFB6-D99C28100996'); Twocheckout::sellerId('901248204'); // Your username and password are required to make any Admin API call. Twocheckout::username('testlibraryapi901248204'); Twocheckout::password('testlibraryapi901248204PASS'); // If you want to turn off SSL verification (Please don't do this in your production environment) Twocheckout::verifySSL(false); // this is set to true by default // To use your sandbox account set sandbox to true Twocheckout::sandbox(true); // All methods return an Array by default or you can set the format to 'json' to get a JSON response. Twocheckout::format('json');
每个绑定的完整文档在 wiki 中提供。
示例支付 API 使用
示例请求
<?php Twocheckout::privateKey('BE632CB0-BB29-11E3-AFB6-D99C28100996'); Twocheckout::sellerId('901248204'); try { $charge = Twocheckout_Charge::auth(array( "sellerId" => "901248204", "merchantOrderId" => "123", "token" => 'MjFiYzIzYjAtYjE4YS00ZmI0LTg4YzYtNDIzMTBlMjc0MDlk', "currency" => 'USD', "total" => '10.00', "billingAddr" => array( "name" => 'Testing Tester', "addrLine1" => '123 Test St', "city" => 'Columbus', "state" => 'OH', "zipCode" => '43123', "country" => 'USA', "email" => 'testingtester@2co.com', "phoneNumber" => '555-555-5555' ), "shippingAddr" => array( "name" => 'Testing Tester', "addrLine1" => '123 Test St', "city" => 'Columbus', "state" => 'OH', "zipCode" => '43123', "country" => 'USA', "email" => 'testingtester@2co.com', "phoneNumber" => '555-555-5555' ) )); $this->assertEquals('APPROVED', $charge['response']['responseCode']); } catch (Twocheckout_Error $e) { $this->assertEquals('Unauthorized', $e->getMessage()); }
示例响应
Array ( [validationErrors] => [exception] => [response] => Array ( [type] => AuthResponse [lineItems] => Array ( [0] => Array ( [options] => Array ( ) [price] => 10.00 [quantity] => 1 [recurrence] => [startupFee] => [productId] => [tangible] => N [name] => 123 [type] => product [description] => [duration] => ) ) [transactionId] => 205181140830 [billingAddr] => Array ( [addrLine1] => 123 Test St [addrLine2] => [city] => Columbus [zipCode] => 43123 [phoneNumber] => 555-555-5555 [phoneExtension] => [email] => testingtester@2co.com [name] => Testing Tester [state] => OH [country] => USA ) [shippingAddr] => Array ( [addrLine1] => 123 Test St [addrLine2] => [city] => Columbus [zipCode] => 43123 [phoneNumber] => [phoneExtension] => [email] => [name] => Testing Tester [state] => OH [country] => USA ) [merchantOrderId] => 123 [orderNumber] => 205181140821 [recurrentInstallmentId] => [responseMsg] => Successfully authorized the provided credit card [responseCode] => APPROVED [total] => 10.00 [currencyCode] => USD [errors] => ) )
示例 Admin API 使用
示例请求
<?php Twocheckout::username('testlibraryapi901248204'); Twocheckout::password('testlibraryapi901248204PASS'); $args = array( 'sale_id' => 4834917619 ); try { $result = Twocheckout_Sale::stop($args); } catch (Twocheckout_Error $e) { $e->getMessage(); }
示例响应
<?php [response_code] => OK [response_message] => Array ( [0] => 4834917634 [1] => 4834917646 [2] => 4834917658 )
示例结账使用
示例请求
<?php $params = array( 'sid' => '1817037', 'mode' => '2CO', 'li_0_name' => 'Test Product', 'li_0_price' => '0.01' ); Twocheckout_Charge::form($params, 'auto');
示例响应
<form id="2checkout" action="https://www.2checkout.com/checkout/spurchase" method="post"> <input type="hidden" name="sid" value="1817037"/> <input type="hidden" name="mode" value="2CO"/> <input type="hidden" name="li_0_name" value="Test Product"/> <input type="hidden" name="li_0_price" value="0.01"/> <input type="submit" value="Click here if you are not redirected automatically" /></form> <script type="text/javascript">document.getElementById('2checkout').submit();</script>
示例返回使用
示例请求
<?php $params = array(); foreach ($_REQUEST as $k => $v) { $params[$k] = $v; } $passback = Twocheckout_Return::check($params, "tango");
示例响应
<?php [response_code] => Success [response_message] => Hash Matched
示例 INS 使用
示例请求
<?php $params = array(); foreach ($_POST as $k => $v) { $params[$k] = $v; } $passback = Twocheckout_Notification::check($params, "tango");
示例响应
<?php [response_code] => Success [response_message] => Hash Matched
异常
如果在返回中有错误,则会抛出 Twocheckout_Error 异常。最好捕获这些异常,以便在您的应用程序中优雅地处理。
示例使用
<?php Twocheckout::username('testlibraryapi901248204'); Twocheckout::password('testlibraryapi901248204PASS'); $params = array( 'sale_id' => 4774380224, 'category' => 1, 'comment' => 'Order never sent.' ); try { $sale = Twocheckout_Sale::refund($params); } catch (Twocheckout_Error $e) { $e->getMessage(); }
每个绑定的完整文档在 wiki 中提供。