Formatage de l'API Reference de Stripe.

WRInaute accro
Bonjour

Je me suis remis à la conception/programmation d'un package de paiements Stripe pour mon site partenaire.

Il n' y aura que des paiements par abonnements, ( 1 ou 3 mois ), avec éventuellement des rabais ponctuels.

J'ai chargé dans un fichier texte, toute l'API Reference, avec les exemples en PHP, et les objets, attributs et valeurs et autres babioles.

Je vais de nouveau, formater ce fichier avec l'aide de scripts php programmés ad hoc, de manière à disposer d'une documentation suffisamment claire et facile à interpréter.

Comme méthode de conception, je connais ( c'est un vieux truc ), la méthode Merise, essentiellement pour passer du détail factuel, à la représentation Informatique.

Je ne pourrai pas ne pas faire une interface d'administration, qui fasse le lien entre les traitements informatiques et un langage compréhensible par mon dirlo.

J'aurai une longue phase de juxtaposition des règles métiers, en essayant de les formaliser de manière à ce que je puisse progresser dans la conception.

Quelles suggestions pourriez-vous me donner, quant au choix d'une méthodologie ou d'une méthode de conception ?

Et aussi par rapport à ce package de paiements ?

Merci beaucoup.
 
WRInaute accro
Rebonjour

Voici l'exemple ( pour l'objet BalanceTransaction ) :

Code:
****************************************************************
Stripe_Object : "BalanceTransaction"
*************************************

Attributes
**********

"id"	string			Unique identifier for the object.

"object" = "balance_transaction"			String representing the object’s type. Objects of the same type share the same value.

"amount"	integer			Gross amount of the transaction, in cents.

"available_on"	timestamp			The date the transaction’s net funds will become available in the Stripe balance.

"created"	timestamp			Time at which the object was created. Measured in seconds since the Unix epoch.

"currency"	currency			Three-letter ISO currency code, in lowercase. Must be a supported currency.

"description"	string			An arbitrary string attached to the object. Often useful for displaying to users.

"fee"	integer			Fees (in cents) paid for this transaction.

"fee_details"	list			Detailed breakdown of fees (in cents) paid for this transaction.


****************************************************************
Stripe_Attribute : "fee_details" Child of : "BalanceTransaction"

****************************************************************

"amount"	integer		Amount of the fee, in cents.

"application"	string

"currency"	currency		Three-letter ISO currency code, in lowercase. Must be a supported currency.

"description"	string		An arbitrary string attached to the object. Often useful for displaying to users.

"type"	string		Possibles Values = "application_fee", "stripe_fee", "tax"	Type of the fee, one of

****************************************************************

"net"	integer			Net amount of the transaction, in cents.

"source"	string			The Stripe object this transaction is related to.

"status"	string			If the transaction’s net funds are available in the Stripe balance yet. Either available or pending.

"type"	string			Possibles Values = "adjustment", "application_fee", "application_fee_refund", "charge", "payment", "payment_failure_refund", "payment_refund", "refund", "transfer", "transfer_refund", "payout", "payout_cancel", "payout_failure", "validation"	Transaction type

****************************************************************


En fait, le fichier complet ( formaté ), fait 551.458 octets.

Il contient tout : Les conseils de Stripe, codes PHP, objets, attributs et valeurs possibles ( quand précisées ).

C'est un peu touffus, mais quand même moins qu'au départ.

J'envisage l'approche Merise, pour traduire le langage verbal de manière informatique.

Y a-t-il d'autres méthodes plus adaptées pour un tel problème, qui pose surtout la complexité ( donc l'effort de compréhension ), des règles et traitement métiers ?

Merci beaucoup.
 
WRInaute accro
Bonjour Monsieur

J'avais déjà la librairie Stripe-PHP et ces scripts php.

C'est de la doc Stripe que j'ai tiré ce fichier ( texte ), qui a l'avantage de n'être qu'un seul fichier.

Et quant à la méthode de conception ?

Dans ce fichier texte j'ai un ensemble ( gros ) de règles éparses de pris en compte des requêtes https de Stripe ( vers le webhooks.php local du site ), mais je ne vois pas comment fixer cet ensemble de règles, de manière structurée et lisible.

Je vais voir dans la librairie Stripe-PHP, mais comment concevoir une finite state machine globale à partir de tous ces scripts ?

Merci beaucoup.
 
WRInaute accro
Rebonjour spout

Voilà, j'ai installé PHPUnit 6.3.0 comme paquet de mon Fedora 25, et puis Stripe-PHP avec :

"composer require stripe/stripe-php"

J'ai mis dans le php.ini :

include_path="/usr/share/php:/usr/share/pear:/usr/share/php/PHPUnit:/usr/share/php/PHPUnit/Framework:/usr/share/pear/PEAR"

Comme Stripe_PHP a changé le libellé de la classe "TestCase", ( n'existant pas sous le libellé de Stripe_PHP ), j'ai mis ceci dans le tests/bootstrap.php :

Code:
// backward compatibility
if (class_exists('PHPUnit\Framework\TestCase') &&
    !class_exists('PHPUnit_Framework_TestCase')) {
    class_alias('PHPUnit\Framework\TestCase', 'PHPUnit_Framework_TestCase');
}

Maintenant, quand je fais :

phpunit ./tests/TestCase

çà marche.

Mais :

phpunit ./tests/UtilTest

La classe : "ApiRequestor" est "not found".

Cette classe n'existe que comme : "ApiRequestorTest" ( dans le fichier du même nom ), mais de toute façon ce fichier n'est manifestement pas chargé.

Que faire pour que tout soit correct pour les tests ?

Merci beaucoup.
 
WRInaute accro
Bonjour Spout

Le test général ( avec build.php ), se fait sans aucune erreur.

Quand je fais certains tests ( avec ./vendor/bin/phpunit ) çà marche.

Avec d'autres tests, il y a une ou + de classes qui ne sont pas trouvées, simplement parce qu'elles ne sont pas chargées ( leur fichier ne l'est pas. )

Celà n'a-t-il pas la moindre importance en situation réelle, d'écriture du package de paiement Stripe ?

Même en mode test ?

Dans ces conditions, les classes seront nécessairement chargées comme il faut, et il n'y aura plus le moindre souci.

Ce matin, j'ai acheté : de Larry Ullman : "Effortless E-Commerce with MySQL and PHP 2nd Ed.".

Je recevrai le colis le 15 Octobre.

J'ai les scripts de ce Monsieur.

Et en plus, son livre traite aussi de Paypal et Stripe. ;)

Respectueusement.
 
Nouveau WRInaute
Je me nomme Caroline Goyer et je dirige l'entreprise GOYER FINANCE pour l'assistance financière. N'hésitez pas à nous contacter si vous êtes dans le besoin. Merci.
 
Discussions similaires
Haut