# bx:paypal

Mithilfe dieses Tags wird ein verschlüsselter Wert für ein `<hidden>`-Feld generiert, das an Paypal geschickt wird.

Nach dem Bestellprozeß wird ein Paypal-Button eingeblendet, der ein neues Fenster mit der Paypal-Website öffnet. Dies wird durch eine HTML-For ausgelöst:

```xml
<form action="https://www.paypal.com/cgi-bin/webscr" target="_blank" method="post">
 <input type="hidden" name="cmd" value="_s-xclick">
 <input type="text" name="encrypted" size=80 value="<bx:paypal.crypt pass="{Das Passwort}" cmdtext="cmd=_xclick,cert_id={Die ID von Paypal},business={Email-Adresse des Kunden},currency_code=EUR,item_name={Betreff}" paypalcert="{Zertifikat-Datei}" certfile="{Zertifikat-Datei}" keyfile="{Zertifikat-Datei}" price="{Betrag}"/>">
 <input type="image" style="margin-right:10px;" src="http://www.paypal.com/de_DE/i/btn/x-click-but6.gif" name="submit" alt="Zahlen Sie mit PayPal - schnell, kostenlos und sicher!">
</form>
```

Die Erzeugung der ID bei Paypal wird hier beschrieben: <a href="https://www.paypalobjects.com/de_DE/html/IntegrationCenter/ic_button-encryption.html" target="_blank">https://www.paypalobjects.com/de_DE/html/IntegrationCenter/ic_button-encryption.html</a> (Schritt 2 und 3 muß der Kunde mit seinem Paypal-Zugang durchführen)
 siehe auch: <a href="https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_encryptedwebpayments" target="_blank">https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_encryptedwebpayments</a>

Dort muß die .pem-Datei (Attribut `certfile`), die man mit Open-SSL erzeugt, hochladen und bekommt das öffentliche Zertifikat zurück (Attribut `paypalcert`). Der private Schlüssel im P12-Format wird ebenfalls mir OpenSSL generiert und bei Attribut `keyfile` ins Tag eingetragen. Das Passwort, das beim Erzeugen des P12-Schlüssels eingegeben wurde, muß im Attribut `pass` angegeben werden. Im Attribut `cmdtext` muß dann die ID von Paypal (nach Upload der .pem-Datei), die beim Erzeugen der Datei angegebene Email-Adresse und ein Infotext für die Buchung eingegeben werden.

Syntax:

```xml
<bx:paypal.crypt pass="..." cmdtext="..." paypalcert="..." certfile="..." keyfile="..." />
```

benötigte Tag-Parameter:

| certfile | eine Datei mit dem Public Cert (.pem) |
| --- | --- |
| keyfile | eine Datei mit dem Private Key in PKCS12-Format (.p12) |
| paypalcert | eine Datei mit PayPal's Public Cert |
| pass | ein Passwort mit dem die Datei in Parameter keyfile verschlüsselt ist |
| cmdtext | Format "cmd=_xclick,cert_id=[ID von Paypal],business=[email],currency_code=EUR,item_name=[infotext]" |

Desweiteren wird ein Request-Attribut oder Request-Parameter namens 'price' benötigt.

Ein Request-Parameter namens 'orderid' kann an den Infotext für Paypal angehängt werden.

### Beispiele

```xml
<bx:paypal.crypt pass="geheim"
  cmdtext="cmd=_xclick,cert_id=ABCD1234EF56,business=info@mustermann.de,currency_code=EUR,item_name=Bestellung bei Mustermanns" 
  paypalcert="133117E8C9D.txt" certfile="133117DCAB5.pem" keyfile="133117E4A90.p12" price="1234.50"/>
```