0

我目前有一个需要 Sagepay 集成的站点,以前的站点已经成功集成了 sagepay,但是没有一个使用过 Zend,不幸的是,没有太多关于将 Zend 与 Sagepay 结合使用的文档,但是我找到了一个可以在此链接上工作的模块:

http://code.google.com/p/zend-service-sagepay/source/browse/trunk/library/My/Sagepay.php?r=2

在这种情况下,最佳实践是什么,我知道 Sagepay 提供了多种处理付款的方法,尽管它与网站集成得越多越好。

4

1 回答 1

1

由于 Sagepay API 只是通过一堆 curl 请求访问,因此您可以只使用 Zends Client 和 Request 对象。例如 :

定义您要发布的数据 -

// Set the post data
$data = array(
    'VPSProtocol'       =>  '',
    'TxType'            =>  '',
    'Vendor'            =>  '',
    'VendorTxCode'      =>  '',
    'Amount'            =>  '',
    'Currency'          =>  '',
    'Description'       =>  '',
    'CardHolder'        =>  '',
    'CardNumber'        =>  '',
    'StartDate'         =>  '',
    'ExpiryDate'        =>  '',
    'IssueNumber'       =>  '',
    'CV2'               =>  '',
    'CardType'          =>  '',
    'AuthCode'          =>  '',
    'BillingSurname'    =>  '',
    'BillingFirstNames' =>  '',
    'BillingAddress1'   =>  '',
    'BillingAddress2'   =>  '',
    'BillingCity'       =>  '',
    'BillingPostCode'   =>  '',
    'BillingCountry'    =>  '',
    'BillingPhone'      =>  '',
    'DeliverySurname'   =>  '',
    'DeliveryFirstNames'=>  '',
    'DeliveryAddress1'  =>  '',
    'DeliveryAddress2'  =>  '',
    'DeliveryCity'      =>  '',
    'DeliveryPostCode'  =>  '',
    'DeliveryCountry'   =>  '',
    'DeliveryPhone'     =>  '',
    'CustomerEmail'     =>  '',
    'NotificationUrl'   =>  ''
)

然后创建新的客户端对象并将适配器设置为“CURL” -

$client = new Client();
$client->setAdapter(new Curl());

最后创建一个新的请求对象并将客户端对象分派给请求。

$request = new Request();
$request->setUri('https://test.sagepay.com/gateway/service/vspdirect-register.vsp');
$request->setMethod(Request::METHOD_POST);
$request->setContent(http_build_query($data));

$response = $client->dispatch($request);
var_dump($response);
die;

通读可能会有所帮助。

于 2013-09-10T16:59:36.647 回答