php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 27-08-2012, 19:51
OldTrainee
 Registrierter Benutzer
Links : Onlinestatus : OldTrainee ist offline
Registriert seit: Apr 2012
Beiträge: 10
OldTrainee befindet sich auf einem aufstrebenden Ast
Standard Bei Payment API einbindung Hilfe benötigt...

Hallo liebe Community,

ich würde wieder Profiunterstützung von euch benötigen, da ich bei dem oben genannten Vorhaben etwas anstehe.

Ich habe eine bereits funktionierende Payment API Anbindung, möchte jedoch die Provider wechseln.
Dazu muss ich eine neue Gateway hinzufügen. Ich habe zwar eine englische Beschreibung, jedoch stehe irgendwie auf der Leitung.

Hier die Anleitung zur Einbindung:
PHP-Code:
Overview

The Payment API attempts to provide a unified way of integration with different payment gateways
.

The API provides an abstract definition of payment gateway APIthis means it will not implement specific processing workflow – this is achieved by extending it.

The API consists of:

    
Library
    API allowing you to extend the functionality of the library

Types of integrations

        Gateway Integration – all communication is done between SoftwareABC5 web server 
and gatewaycustomer enters CC information on SoftwareABC5.
        
Hosted Page – all payment (addressesitemsinformation transferred to gateway and transaction is completed there

Workflow

    Create a 
new php gateway class using the examples in this document
    Code any custom functionality required by payment gateway
    Place the 
class in the gateway folder
    Open the admin 
and configure and  enable offers for the new payment option

As an exampleconsider a typical payment gatewayYou might need to:

    
set up a merchant ID and a password
    add custom product codes 
for each offer
    request users to write down their phone number before purchasing tokens

All these can be accomplished with simple tasks
:

    
specify the 2 fieldsone for merchant IDone for the password in the generateAdminForm() metdodthey will automatically show up in admin edit screen
    specify the product code field in the generateAdminOffersForm
() methodit will automatically show up in admin edit screen, for every system offer
    specify the phone 
# field in the generatePaymentForm() method; it will automatically show up in front-end, on buy process page

Conventions

New gateways must extend the abstract gateway class:

SoftwareABC_Payment_Gateway

The naming convention 
require SoftwareABC_Payment_Gateway_prefix being added to all new gateway class namesfollowed by a capitalized name of the payment gateway:

SoftwareABC_Payment_Gateway_Demo

Files must be placed in the gateway folder
, for example:

libs/
    
classes/
        
SoftwareABC/
            
payment/
                
gateway/
                    
Demo.class.php
                    Epoch
.class.php
                    
<- add new class here

Following the convention will assure the 
new gateway automatically shows up in adminwhere it can be enabled and set upNo more, and no lessis required.
The Gateway class

Now that we’ve discussed the minimum requirements for creating a new gateway and its structurelet’s discuss the minimum requirementthe Gateway class.

The gateway class, as noted previouslyshould exist in the gateway’s folderBeyond thathoweverthere are no real requirementsother thatat a minimumit mus implement the following structure:

class 
SoftwareABC_Payment_Gateway_Demo extends SoftwareABC_Payment_Gateway
{
    protected 
$_gateway 'Demo';

    public function 
generateAdminForm()
    {

    }
     public function 
generatePaymentForm()
    {

    }
     public function 
generateAdminOffersForm()
    {

    }
     public function 
processOrder()
    {

    }
     public function 
processTransaction(array $response)
    {

    }
}

 

Sowhat do gateway classes do, then?

The gateway class fulfills three key purposes:

    
It generates formseither for configuration or for payment
    It processes an order
    It processes a transaction

Forms

Most gateways 
require some sort of configuration and parameters to be passed to each requestThis can be achieved by generating forms.

There are 4 types of form elements that can be generatedeach of them supports labelscustom css class, custom ida chain of validators and other few specific options such as rows for testareasBelow are exampled for each type.
Example of text input

// set options
$options = array(
    
'label' => 'Text Input',
    
'3' => 1,
    
'id' => 'txt1',
    
'class' => 'text',
    
'size' => 28,
    
'maxlength' => 24
);

// init element
$element = new SoftwareABC_Form_Element_Text('text'$options);

// get value, fallback to default
$value $this->getOption('text''default text value');

// set value, required, validator
$element->setValue($value)
        ->
setRequired(true)
        ->
addValidator('alpha');

// add element
$this->getPaymentForm()->addElement($element);

Example of textarea

// set options
$options = array(
    
'label' => array('value'=>'Textarea''class'=>'textarea'),
    
'id' => 'textarea1',
    
'class' => 'text',
    
'rows' => 5,
    
'cols' => 20,
);

// init element
$element = new SoftwareABC_Form_Element_Textarea('textarea'$options);

// get value, fallback to default
$value $this->getOption('textarea''default value for textarea');

// set value, required, validator
$element->setValue($value)
        ->
setRequired(true)
        ->
addValidator('alpha');

// add element
$this->getPaymentForm()->addElement($element);

Example of select box

// set options
$options = array(
    
'label' => array('value'=>'Select''class'=>'select'),
    
'id' => 'select1',
    
'class' => 'text',
    
'options' => array(10=>'Option 10'20=>'Option 20'),
);

// init element
$element = new SoftwareABC_Form_Element_Select('select'$options);

// get value, fallback to default
$value $this->getOption('select'20);

// set value, required, validator
$element->setValue($value)
        ->
setRequired(true)
        ->
addValidator('numeric');

// add element
$this->getPaymentForm()->addElement($element);

Example of multi-select box

// set options
$options = array(
    
'label' => array('value'=>'Multi Select''class'=>'multiselect'),
    
'id' => 'multi1',
    
'class' => 'text',
    
'multiple' => true,
);

$opt = array(10=>'Option 10'20=>'Option 20'30=>'Option 30');

// init element
$element = new SoftwareABC_Form_Element_Multiselect('multiselect'$options);

// get value, fallback to default
$value $this->getOption('multiselect', array(1030));

// set value, required, validator
$element->setValue($value)
        ->
setRequired(true)
        ->
addValidator('numeric')
        ->
setMultiOptions($opt);

// add element
$this->getPaymentForm()->addElement($element);

Processing orders

Different gateways 
require different parameters for the orderThe implementation can follow two distinct directions:

    
Compose a URL with gateway url and list of parametersthen redirect to gateway urlThe gateway will use a callback script (URL available in adminedit gateway screento respond with the transaction detailsBased on responsedisplay ok/error message.
    OR
    
Compose an array of parameters and call the gatewayBased on responsedisplay ok/error message.

Processing transactions

Different gateways respond in specific formats after a transaction
Based on the validity of response sourceof response parametersdisplay ok/error message
Mit Zitat antworten
  #2 (permalink)  
Alt 27-08-2012, 22:02
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Und wo genau hapert es jetzt bei dir? Bekommst du Fehlermeldungen?

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 28-08-2012, 00:19
OldTrainee
 Registrierter Benutzer
Links : Onlinestatus : OldTrainee ist offline
Registriert seit: Apr 2012
Beiträge: 10
OldTrainee befindet sich auf einem aufstrebenden Ast
Standard

Ich versuche einmal meine Schritte zu erläutern, damit man evtl. nachvollziehen kann, wo der Fehler sein könnte.

1. Zunächst habe ich eine leere "SoftwareABC_Payment_Gateway_Demo.class.php" erstellt und in folgenden Ordner gelegt:
Zitat:
libs/classes/SoftwareABC/payment/gateway/
2. Danach habe ich einen neuen Odner "demo" angelegt:
Zitat:
libs/classes/SoftwareABC/payment/gateway/demo
3. In diesen Ordner habe ich die Datei "SoftwareABC_Payment_Gateway_Demo.class.php" mit folgenden Inhalt:
PHP-Code:
class SoftwareABC_Payment_Gateway_Demo extends SoftwareABC_Payment_Gateway
{
    protected 
$_gateway 'Demo';

    public function 
generateAdminForm()
    {

    }
     public function 
generatePaymentForm()
    {

    }
     public function 
generateAdminOffersForm()
    {

    }
     public function 
processOrder()
    {

    }
     public function 
processTransaction(array $response)
    {

    }

4. Wenn ich danach die SoftwareABC_Payment_Gateway_Demo aufrufen möchte bekomme ich folgende Fehlermeldung:
Zitat:
Gateway class is not defined: SoftwareABC_Payment_Gateway_Demo
Mit Zitat antworten
Antwort

Lesezeichen


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/103302-bei-payment-api-einbindung-hilfe-benoetigt.html
Erstellt von For Type Datum
Hilfe benötigt bei Payment API einbindung - php.de This thread Refback 28-08-2012 03:37

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilfe bei Anpassung (PHP) einer Joomla-Komponente benötigt Schmerkus Projekthilfe 0 13-01-2007 11:33
Hilfe benötigt trojaner- PHP Developer Forum 9 29-11-2005 20:11
Regex Hilfe benötigt kj187 PHP Developer Forum 4 14-05-2005 14:32
Anfänger benötigt Hilfe bei Functionen Wombel PHP Developer Forum 2 19-02-2004 23:46
Anfänger benötigt Hilfe bei SQL Warnung ! dakilla PHP Developer Forum 26 29-01-2002 17:24

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:04 Uhr.