marlon-be/marlon-sips

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

1.0.3 2013-12-06 09:30 UTC

This package is not auto-updated.

Last update: 2024-09-20 18:09:03 UTC


README

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

要求

  • PHP 5.3
  • 您的 web 服务器与 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