-
Notifications
You must be signed in to change notification settings - Fork 2
F10420
Yannouk edited this page Jul 5, 2012
·
1 revision
- Abstraction level:Medium
- State: In progress
- ID: F10420
- Story: User pays with credit card
- Priority: High
- Development Time: 1 Week
- Maintenance Time: 5h/week
- A transaction is initiated ?
- Confirmation
- A transaction is confirmed ?
- System available from bank (see this)
- Inherit security from E-I.
- Keep transaction record (user/IP, date).
- Logged outcoming payment request (EPTOut=Special:ElectronicPayment)
- Logged incoming payment confirmation (EPTBack=Special:EPTBack)
- Recorded transaction
- Payment Extension: ElectronicPayment
- Transaction Extension: TransactionManager
- We use the CM-CIC online TPE (Electronic Payment Terminal) solution by Euro-Information (E-I).
- General doc (fr): https://www.cmcicpaiement.fr/fr/info/documentations/CM-CIC_paiement_documentation_generale_v3_0.pdf
- Technical doc (fr): https://www.cmcicpaiement.fr/fr/info/documentations/CM-CIC_paiement_documentation_technique_v3_0.pdf
- Mod_Rewrite + Mod_Proxy :
Entrance for Electronic Payment back interface (EPTBack).The bank needs a static .php file with many parameters (phone/mail them to change adress). WikiZam needs a special page (index.php?title=Special:EPTBack). Mod_rewrite creates a proxy to map bank's needs to WikiZam needs. Flags: P (Proxy, use mod_proxy), NE (No Escape [for %]), QSA (Query String Added [Passes Query from request to target]) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/payment/Phase2Retour.php http://papilusion.seizam.com:80/index.php?title=Special:EPTBack [P,NE,QSA] </ifmodule>
- Messages between WikiZam & Bank are called ep_message (db table) / EPMessage (php class).
- Data sent and reveived are EPMessage->$epm[]
- Each transaction is recorder as TMRecord->$tmr[] (linked by Hook BeforeTransactionSave).
- epm['epm_o_reference'] = $tmr['tmr_id'].
- When accessing /index.php?title=Special:ElectronicPayment&status=attempt&amount=43, an attempt message is recorded (ep_message.epm_type=out/ EPMessage::$epm['type']='out').
- People click on "access payment interface".
- People reach "CIC payment interface"
- People pays online.
- Bank accesses /index.php?title=Special:ElectronicPayment&action=EPTBack with much parameters. example:
/index.php?title=Special:ElectronicPayment&action=EPTBack&TPE=6527604&date=26%2f01%2f2012%5fa%5f10%3a48%3a44&montant=42EUR&reference=104827&MAC=FAE2BDA1964DA2E50C1A57728B7F605365B72ACA&texte-libre=%28user%3a+%3c0%3e+ip%3a+%3c109%2e217%2e103%2e6%3e+mail%3a+%3ccontact%40seizam%2ecom%3e+lang%3a+%3cEN%3e%29&code-retour=payetest&cvx=oui&vld=1219&brand=na&status3ds=3&numauto=000000&originecb=00x&bincb=000001&hpancb=A8A7A17B589AB8F2CC96D1CAC0A64950DFFF9308&ipclient=109%2e217%2e103%2e6&originetr=FRA&veres=&pares=
- This request is authenticated and recorded (ep_message.epm_type=in/ EPMessage::$epm['type']='in').
- Read a line in ep_message :
/index.php?title=Special:ElectronicPayment&action=read&id=X
- Layout/View
- Paypal?
- Verbose user return (action=success/fail)