hete / paypal
Kohana 框架的 PayPal 模块
dev-3.3/master
2015-05-08 19:01 UTC
Requires
- php: >=5.3.3
- kohana/core: 3.3.*
Requires (Dev)
- kohana/unittest: 3.3.*
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-28 16:31:06 UTC
README
此模块支持经典 NVP PayPal API,以及 IPN 终端。
NVP API 正被新的 RESTful API 所弃用。您可以使用它与 PayPal-PHP-SDK 一起使用。
基本用法
您需要从 PayPal 网站获取凭据以使用此模块。一旦获取,请将它们设置在配置文件中。
如果您想使用证书,不要设置签名,并将您的证书路径提供给 cURL。这在模块配置文件中有文档说明。
您只需要实例化一个外部的 Request
对象
$setexpresscheckout = PayPal::factory('SetExpressCheckout');
它返回一个可参数化和执行的准备好的 Request
对象
$response = $setexpresscheckout ->query('AMT', 33.23) ->query('RETURNURL', Route::url('default', array( 'controller' => 'payment', 'action' => 'complete'), 'https')) // use your own return url ->query('CANCELURL', Route::url('default', array( 'controller' => 'payment', 'action' => 'cancel'), 'https')) // use your own cancel url ->execute();
不要将数组传递给 Request::query
,它会擦除包含凭据和方法的初始配置。
对需要用户交互的请求进行重定向处理。
$url = PayPal_SetExpressCheckout::redirect_url($response); $query = PayPal_SetExpressCheckout::redirect_query($response); HTTP::redirect($url . URL::query($query));
或者简单点
PayPal_SetExpressCheckout::redirect($response);
PayPal 类提供了一个将响应解析为关联数组的方法,以便您可以有效地处理数据。
$response = PayPal::parse_response($response);
如果您需要原始 PayPal 数组
$arr = PayPal::parse_response($response, FALSE);
然后您可以展开它
$expanded = PayPal::expand($arr);
验证
为一些请求提供了验证规则。一种贡献的方式是提供更多对请求和响应对象的验证。
$request_validation = PayPal_SetExpressCheckout::get_request_validation($request); $response_validation = PayPal_SetExpressCheckout::get_response_validation($response);
IPN
要启用 IPN,请在您的配置中设置 ipn_enabled
选项。它将为 PayPal 的请求创建一个端点。
example.com/ipn
在实时环境中,请求会自动与 PayPal 进行验证。您只需要覆盖 Kohana_Controller_IPN
并设置支持的操作。如果没有指定,将触发 404 错误。
在您的应用程序中,您只需要覆盖 IPN 控制器并实现相应的操作。操作名称将与 PayPal 查询中的 txn_type
键匹配。
class Controller_PayPal_IPN extends Kohana_Controller_PayPal_IPN { public function action_express_checkout() { // Put your code here... } }