deruwe/atos-sips

此软件包的最新版本(1.0.3)没有可用的许可信息。

1.0.3 2013-12-06 09:30 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:04:24 UTC


README

此库允许您轻松地将[Sips]集成到您的项目中。它提供了完成与[Sips]平台正确支付流程所需的必要组件。

要求

  • PHP 5.3
  • 您的网站服务器与Sips平台之间的网络连接

SIPS平台可以通过以下URL访问

概述

该库符合PSR-0标准,因此可以使用PSR-0类加载器(如Symfony2中的类加载器)来自动加载。请参阅autoload.php以获取示例。

该库支持Composer的使用。

  • 创建一个包含Sips所需所有信息的PaymentRequest。
  • 将其提交给Sips(客户端)
  • 从Sips接收一个PaymentResponse(作为HTTP请求)

PaymentRequest和PaymentResponse都通过比较SHA签名进行身份验证,该签名是参数的散列和一个秘密密语的哈希。您可以使用ShaComposer创建哈希。

SHA Composer

Sips生成SHA签名的函数

  • "每个参数后面跟着密语" 此方法要求您使用以下加密方法:SHA-256。

    使用此库实现起来非常简单

  <?php
	use Sips\ShaComposer\AllParametersShaComposer;
	$shaComposer = new AllParametersShaComposer($passphrase);

PaymentRequest

	<?php

	use Sips\Passphrase;
	use Sips\PaymentRequest;

	$passphrase = new Passphrase('passphrase-defined-in-sips-interface');
	$shaComposer = new AllParametersShaComposer($passphrase);

	$paymentRequest = new PaymentRequest($shaComposer);

	// Optionally set Sips uri, defaults to TEST account
	//$paymentRequest->setSipsUri(PaymentRequest::PRODUCTION);

	// Set various params:
	$paymentRequest->setMerchantId('123456');
    $paymentRequest->setKeyVersion('1');
    $paymentRequest->setTransactionReference($sipsTransactionReference);
    $paymentRequest->setAmount(1000);
    $paymentRequest->setCurrency('EUR');
    $paymentRequest->setLanguage('nl');
    $paymentRequest->setPaymentBrand('VISA');
	// ...

	$paymentRequest->validate();

	// Create Http client to send the paymentRequest
    // We use Zend_Http_Client here, feel free to use your favourite HTTP client library
	$client = new Zend_Http_Client($paymentRequest->getSipsUri());
	$client->setParameterPost('Data', $paymentRequest->toParameterString());
    $client->setParameterPost('InterfaceVersion', '<Sips interfaceVersion>');
    $client->setParameterPost('Seal', $paymentRequest->getShaSign());

    $response = $client->request(Zend_Http_Client::POST);
    echo $response->getRawBody();
    exit();

PaymentResponse

PaymentResponse通常用于SIPS可用的单独端点。该URL将由SIPS平台用于通知商户支付是否成功。

检查支付是否成功取决于检查RESPONSECODE参数是否为0060

  	<?php
	use Sips\PaymentResponse;
	use Sips\ShaComposer\AllParametersShaComposer;

	// ...

	$paymentResponse = new PaymentResponse($_REQUEST);

	$passphrase = new Passphrase('passphrase-defined-in-sips-interface');
	$shaComposer = new AllParametersShaComposer($passphrase);

	if($paymentResponse->isValid($shaComposer) && $paymentResponse->isSuccessful()) {
		// handle payment confirmation
	}
	else {
		// perform logic when the validation fails
	}

运行测试

测试套件需要PHPUnit才能运行。只需在项目的根目录中运行phpunit即可。

    phpunit