GoSign OneSign PHP API client

Overview

OneSign PHP API Client

Reikalavimai

  • PHP 7.4+ arba 8.0+

Patariam

  • Nginx
  • php-fpm

Funkcijos

  • PDF dokumentų pasirašymas;
  • laiko žymų uždėjimas ant PDF dokumentų.

Diegimas

Norėdami greitai integruoti šią biblioteką į savo PHP projektą naudokite Composer PHP paketų valdymo įrankį. Jei jūsų projektas nenaudoja PSR standartu paremtą HTTP klientą, papildomai įdiekite vieną iš jų. Daugiau informacijos galite rasti paslaugų teikimo tvarkoje.

Standartinis diegimas

$ composer require "registrucentras/onesign:^1.1"

Naudojimas

Inicijuokite API kliento objektą.

use RegistruCentras\OneSign\Client;

$client = new Client();

Autentifikavimas, užklausų ir atsakymų validacija

Pasirašymo paslaugos saugumas ir kliento autentifikavimas užtikrinamas naudojant asimetrinę kriptografiją:

  • jūsų privatus raktas, naudojamas siunčiamam turiniui pasirašyti;
  • jūsų viešas raktas (perduodamas GoSign administratoriui), naudotojui ir jo siunčiamam turiniui patvirtinti;
  • viešas GoSign raktas (pateikiamas individualiai GoSign administratoriaus), užklausos atsakymo vientisumui užtikrinti.

kaip generuoti raktus pateikiama raktų generavimo instrukcijoje.

$client->configure(
  'api_endpoint_adresas',
  'jums_suteiktas_id',
  \file_get_contents(__DIR__ . '/../Keys/private.key'),
  'private_key_passprahse',
  \file_get_contents(__DIR__ . '/../Keys/public.key')
);

Pavyzdžiai

Dokumento pasirašymas

Dokumento pasirašymas vyksta keliais etapais:

  • inicijuojama pasirašymo transkacija ($client->init());
  • asmuo, pasirašantis dokumentą, nukreipiamas į pasirašymo puslapį;
  • pasirašomas dokumentas;
  • asmuo, pasirašantis dokumentą, nukreipiamas į ($client->init()) metode nurodytą pasirašymo sėkmės puslapį;
  • gaunamas pasirašytas dokumentas ($client->result()).

Inicijuota pasirašymą galite nutraukti ($client->cancel()) (iki dokumento pasirašymo).

Pasirašymo inicijavimas

Dokumento pasirašymo inicijavimui yra naudojami keturi esybių objektai:

  • Signer - aprašomas pasirašantis asmuo;
  • File - aprašomas pasirašomas failas;
  • SignatureConfiguration - aprašoma parašo konfigūracija;
  • Configuration - aprašoma pasirašymo konfigūracija.
use RegistruCentras\OneSign\Entity\Signer;
use RegistruCentras\OneSign\Entity\File;
use RegistruCentras\OneSign\Entity\SignatureConfiguration;
use RegistruCentras\OneSign\Entity\Configuration;
use RegistruCentras\OneSign\Entity\SigningType;

$signer = (new Signer())
  ->setPersonalCode('asmens_kodas')
  ;
  
$file = (new File())
  ->setName('failo_pavadinimas')
  ->setContent(\file_get_contents(__DIR__ . '/../Files/sample.pdf'))
  ;
  
$signatureConfiguration = new SignatureConfiguration();

$configuration = (new Configuration())
  ->setResponseUrl('http://example.com/backlink')
  ->setSigningType(SigningType::SIGNATURE_WITH_TIMESTAMP_OCSP)
  ;

$response = $client
  ->init($signer, $file, $signatureConfiguration, $configuration)
  ;

$transactionId = $response->getTransactionId();
        
$signingUrl = $response->getSigningUrl();

rezultate gauname:

  • transactionId - pasirašymo transakcijos unikalus numeris;
  • signingUrl - pasirašymo puslapio adresas, į kurį bus nukreipiamas pasirašytojas.

Daugiau veikiančių pavyzdžių galite rasti kliento testavimo scenarijuose.

Pasirašymo transakcijos būsenos patikrinimas ir pasirašyto failo gavimas

Pasirašyto dokumento gavimui yra naudojamas vienas esybių objektas:

  • Transaction - pasirašymo transakcijos unikalus numeris gautas iš pasirašymo inicijavimo etapo.
use RegistruCentras\OneSign\Entity\Transaction;
use RegistruCentras\OneSign\HttpClient\Message\Response\Status\SigningResponseStatus;

$transaction = (new Transaction())
  ->setTransactionId($transactionId)
  ;

$response = $client
  ->result($transactionId)
  ;

$status = $response->getStatus();

rezultate gauname:

  • status - pasirašymo transakcijos būsena (SigningResponseStatus::IN_PROGRESS - pasirašymas inicijuotas, laukiama dokumento pasirašymo, SigningResponseStatus::SIGNED - dokumentas pasirašytas, SigningResponseStatus::CANCELED - dokumento pasirašymas buvo nutrauktas);

prie SigningResponseStatus::SIGNED pateikiami papildomi parametrai:

  • file - failo esybės objektas;

gaukite pasirašyto failo pavadinimą:

$fileName = $response->getFile()->getFileName();

gaukite pasirašyto failo turinį:

$fileContent = $response->getFile()->geContent();
  • signerCertificate - asmens, kuris pasirašė dokumentą, sertifikatas;
$signerCertificate = $response->getSignerCertificate();
  • signerCertificateTrusted - asmens, kuris pasirašė dokumentą, sertifikato validumas (boolean: true - validus, false - ne validus).
$signerCertificateTrusted = $response->getSignerCertificateTrusted();

Pasirašymo nutraukimas

Pasirašymo nutraukimui yra naudojamas vienas esybių objektas:

  • Transaction - pasirašymo transakcijos unikalus numeris gautas iš pasirašymo inicijavimo etapo.
use RegistruCentras\OneSign\Entity\Transaction;
use RegistruCentras\OneSign\HttpClient\Message\Response\Status\CancelSigningResponseStatus;

$transaction = (new Transaction())
  ->setTransactionId($transactionId)
  ;

$response = $client
  ->cancel($transactionId)
  ;

$status = $response->getStatus();

rezultate gauname:

  • status - pasirašymo transakcijos būsena (CancelSigningResponseStatus::CANCELED - pasirašymas buvo nutrauktas, CancelSigningResponseStatus::ERROR - pasirašymo nutraukti nepavyko);

Atitiktis

  • Standard PHP package skeleton;
  • HTTP message interfaces (PSR-7);
  • HTTP Server Request Handlers, Middleware (PSR-15);
  • HTTP factories (PSR-17);
  • Code styles (PSR-12);
  • PHPDoc standartas (PSR-5, PSR-19);
  • Unit and integration testai;
  • Ištestuota su Github Actions;
  • PHPStan (Level: max);
  • Docker konteineris su Xdebug palaikymu.

Plėtra

Esame atviri atviro kodo politikai. Norite prisidėti prie projekto? Visada laukiame pakeitimų. Kaip tai padaryti? Atlikite pakeitimus atskiroje kodo atšakoje ir siųkite „Pull“ užklausas į pagrindinę kodo atšaką. Prašome tik:

  • vadovautis Symfony karkaso standartais;
  • įsitikinti, kad po pakeitimo esami testai veikia tinkamai;
  • įsitikinti, kad pakeitimas yra "padengtas" testu;
  • vykdyti nuoseklią kodo versijų kontrolę: kiekvieno pakeitimo aprašymas yra prasmingas;
  • naudoti rebase kad išvengumėte konfilktų;
  • nepamiršti ir dokumentacijos;
  • statiniam kodui skenuoti naudoti psalm ir PHP_CodeSniffer;
  • kodo kokybei užtikrinti naudoti phpstan;
  • automatiniam refaktorinimui naudoti rector.

Nuo ko pradėti?

Įsitikinkite, kad jūsų darbo vieta palaiko Docker ir komandų vykdymo Make PĮ.

$ git clone
$ make install

Paleiskite automatinius testus ir kodo analizės įrankius:

$ make test
You might also like...
Rinvex Authy is a simple wrapper for @Authy TOTP API, the best rated Two-Factor Authentication service for consumers, simplest 2fa Rest API for developers and a strong authentication platform for the enterprise.
Rinvex Authy is a simple wrapper for @Authy TOTP API, the best rated Two-Factor Authentication service for consumers, simplest 2fa Rest API for developers and a strong authentication platform for the enterprise.

Rinvex Authy Rinvex Authy is a simple wrapper for Authy TOTP API, the best rated Two-Factor Authentication service for consumers, simplest 2fa Rest AP

Single file PHP that can serve as a JWT based authentication provider to the PHP-CRUD-API project

Single file PHP that can serve as a JWT based authentication provider to the PHP-CRUD-API project

Open source social sign on PHP Library. HybridAuth goal is to act as an abstract api between your application and various social apis and identities providers such as Facebook, Twitter and Google.

Hybridauth 3.7.1 Hybridauth enables developers to easily build social applications and tools to engage websites visitors and customers on a social lev

The first PHP Library to support OAuth for Twitter's REST API.

THIS IS AN MODIFIED VERSION OF ABRAHAMS TWITTER OAUTH CLASS The directories are structured and the class uses PHP5.3 namespaces. Api.php has a new

The most popular PHP library for use with the Twitter OAuth REST API.
The most popular PHP library for use with the Twitter OAuth REST API.

TwitterOAuth The most popular PHP library for Twitter's OAuth REST API. See documentation at https://twitteroauth.com. PHP versions listed as "active

Authentication REST-API built with Lumen PHP Framework

Authentication REST-API built with Lumen PHP Framework Laravel Lumen is a stunningly fast PHP micro-framework for building web applications with expre

Twitter OAuth API for PHP 5.3+

README The Wid'op OAuth library is a modern PHP 5.3+ API allowing you to easily obtain a Twitter access token. For now, it supports OAuth Web & Applic

Laravel web rest api authentication library (PHP).

Webi auth library Laravel web rest api authentication library. Install (laravel 9, php 8.1) First set your .env variables (mysql, smtp) and then compo

A simple twitter SDK to interact with Twitter api (1.1)

Twitter SDK Installation composer require lyrixx/twitter-sdk Usage Create a twitter application then ?php require __DIR__.'/vendor/autoload.php';

Comments
  • Fix code style for PSR12 standard

    Fix code style for PSR12 standard

    README.md states that the code is PSR12 compliant, but phpcs config had PSR2 standard instead. Changed standard in config and applied phpcbf fixes (looks like spaces on empty lines were the only incompatibility).

    opened by kick-the-bucket 0
Releases(v1.1.2)
Owner
Registrų centras
Registrų centras tvarko pagrindinius valstybės informacinius išteklius – 11 valstybės registrų ir 16 informacinių sistemų.
Registrų centras
PHP 5.3+ oAuth 1/2 Client Library

PHPoAuthLib NOTE: I'm looking for someone who could help to maintain this package alongside me, just because I don't have a ton of time to devote to i

David Desberg 1.1k Dec 27, 2022
PHP Client and Router Library for Autobahn and WAMP (Web Application Messaging Protocol) for Real-Time Application Messaging

Thruway is an open source client and router implementation of WAMP (Web Application Messaging Protocol), for PHP. Thruway uses an event-driven, non-blocking I/O model (reactphp), perfect for modern real-time applications.

Voryx 662 Jan 3, 2023
EvaOAuth provides a standard interface for OAuth1.0(a) / OAuth2.0 client authorization, it is easy to integrate with any PHP project by very few lines code.

EvaOAuth EvaOAuth provides a standard interface for OAuth1.0 / OAuth2.0 client authorization, it is easy to integrate with any PHP project by very few

AlloVince 256 Nov 16, 2022
EvaOAuth provides a standard interface for OAuth1.0(a) / OAuth2.0 client authorization, it is easy to integrate with any PHP project by very few lines code.

EvaOAuth EvaOAuth provides a standard interface for OAuth1.0 / OAuth2.0 client authorization, it is easy to integrate with any PHP project by very few

AlloVince 261 Jan 17, 2022
PHPoAuthLib provides oAuth support in PHP 7.2+ and is very easy to integrate with any project which requires an oAuth client.

PHPoAuthLib NOTE: I'm looking for someone who could help to maintain this package alongside me, just because I don't have a ton of time to devote to i

David Desberg 1.1k Dec 27, 2022
PHP OpenID Connect Basic Client

PHP OpenID Connect Basic Client A simple library that allows an application to authenticate a user through the basic OpenID Connect flow. This library

Michael Jett 469 Dec 23, 2022
OAuth 1 Client

OAuth 1.0 Client OAuth 1 Client is an OAuth RFC 5849 standards-compliant library for authenticating against OAuth 1 servers. It has built in support f

The League of Extraordinary Packages 907 Dec 16, 2022
OAuth client integration for Symfony. Supports both OAuth1.0a and OAuth2.

HWIOAuthBundle The HWIOAuthBundle adds support for authenticating users via OAuth1.0a or OAuth2 in Symfony. Note: this bundle adds easy way to impleme

Hardware Info 2.2k Dec 30, 2022
Buddy Provider for the OAuth 2.0 Client

Buddy Provider for OAuth 2.0 Client This package provides Buddy OAuth 2.0 support for the PHP League's OAuth 2.0 Client. Installation To install, use

Buddy 0 Jan 19, 2021
This library extends the 'League OAuth2 Client' library to provide OpenID Connect Discovery support for supporting providers that expose a .well-known configuration endpoint.

OpenID Connect Discovery support for League - OAuth 2.0 Client This library extends the League OAuth2 Client library to provide OpenID Connect Discove

null 3 Jan 8, 2022