hete / paypal

Kohana 框架的 PayPal 模块

安装: 6

依赖项: 0

建议者: 0

安全性: 0

星标: 10

关注者: 6

分支: 28

类型:kohana-module

dev-3.3/master 2015-05-08 19:01 UTC

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...
    }
}