wijs/atos-sips

此包已被废弃,不再维护。没有推荐替代包。
此包最新版本(1.0.3)没有可用的许可信息。

1.0.3 2013-12-06 09:30 UTC

This package is not auto-updated.

Last update: 2024-03-07 11:22:05 UTC


README

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

需求

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

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

概述

该库符合PSR-0标准,因此可以使用如Symfony2中的PSR-0类加载器自动加载。请参阅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