digipolisgent/sips-wordline

该软件包最新版本(0.1.3)没有可用的许可证信息。

0.1.3 2021-05-04 15:58 UTC

This package is auto-updated.

Last update: 2024-09-05 16:56:21 UTC


README

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

需求

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

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

分支

由于它们不再创建新版本,这个库是从worldline/Sips-International-non-FR-PHPlibrary 分支出来的。

概述

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

该库支持使用Composer

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

PaymentRequest和PaymentResponse都通过比较SHA签名进行身份验证,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。SIPS平台将使用此URL通知商户支付是否成功。

检查支付是否成功依赖于检查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