### Generate Private Key and CSR (IXOPAY Example)
Source: https://documentation.ixopay.com/manual/docs/connector/advanced-configuration/applepay-googlepay
This is an example command for generating a private key and CSR, specifically using 'IXOPAY' and 'AT' as placeholders for company name and country code.
```bash
openssl ecparam -name prime256v1 -genkey -noout -out privateKey.key
openssl req -new -key privateKey.key -out certificateSigningRequest.csr \
-subj '/O=IXOPAY/C=AT'
```
--------------------------------
### Example Payment Integration Template
Source: https://documentation.ixopay.com/manual/docs/tokenization/customer-profiles
This template includes essential scripts and styles for integrating the payment form, including Bootstrap and custom CSS for styling.
```html
```
```html
```
```css
:root {
--primary-color: #5e045e;
--primary-color-rgb: 94,4,94;
--secondary-color: #7E047E;
--tertiary-color: #4C044C;
--error-color: #d00;
}
html{
overflow-y: scroll;
}
body{
font-size: 12px;
}
#Container{
display: block;
width: 600px;
margin: 0 auto;
background-color: white;
padding: 10px;
height: 100%;
min-height: 100%;
}
h1{
font-size: 1.2em;
margin: 0;
padding-top: 25px;
color: white;
font-weight: bold;
}
h2{
font-size: 1.4em;
font-weight: normal;
margin: 0px 0px 0px 15px;
padding-top: 10px;
padding-bottom: 20px;
}
h2.pt{
padding-top: 20px;
}
h3{
font-size: 1.1em;
font-weight: bold;
}
.payment-form{
padding-left: 0px;
}
.payment-form h2{
margin: 0px;
}
.th{
font-weight: bold;
}
.payment-method {
cursor: pointer;
}
.payment-method img{
/* set size of images */
/*max-width: 100%;*/
width: 150px;
height: 90px;
border: transparent solid 2px;
}
.payment-method.method-selected img{
border: var(--primary-color) solid 2px;
}
.payment-method:hover img{
border: var(--secondary-color) solid 2px;
}
.payment-method-trigger{
margin-left: 10px;
}
.stored-payment-container .payment-method-trigger{
margin-left: 20px;
clear: both;
}
.stored-payment-container .payment-method-data{
margin-left: 20px;
display: table;
opacity: 0.6;
cursor: pointer;
}
.stored-payment-container .payment-method-trigger:hover .payment-method-data,
.stored-payment-container .payment-method-data.selected {
opacity: 1 !important;
}
.stored-payment-container .payment-method-data img,
.stored-payment-container .payment-method-data input[type=radio],
.stored-payment-container .payment-method-data div
{
display: table-cell;
vertical-align: middle;
}
.stored-payment-container .payment-method-data img{
width: 50px;
height: auto;
}
.stored-payment-container .payment-method-data input[type=radio]{
margin-top: 10px;
margin-right: 8px;
padding-right: 15px;
}
.stored-payment-container .payment-method-data div{
padding: 3px 2px;
}
.stored-payment-container .payment-method-data.selected .p-data{
border: 2px solid rgba(var(--primary-color-rgb), 0.5);
padding: 2px;
}
.stored-payment-container .payment-method-data .p-data{
padding: 4px;
}
.stored-payment-container .payment-method-data span{
display: block;
color: dimgrey;
font-size: 15px;
line-height: 15px;
padding: 2px 6px;
}
.setNewPreferredInstrumentContainer{
margin-left: 65px;
margin-top: 10px;
display: none;
}
label{
font-size: 1em;
font-weight: normal;
margin-top: 4px;
margin-bottom: 0px;
}
div.info{
color: var(--error-color);
display: none;
margin-left: 17px;
}
hr{
margin-top: 3px;
margin-bottom: 3px;
border-top-color: #dddddd;
}
.btn{
margin: 5px 10px 10px 0px;
}
#proceed-btn,
```
--------------------------------
### Importing Email Addresses to Blocklist
Source: https://documentation.ixopay.com/manual/docs/risk-management/blocklist-allowlist
This example shows the content of a text file used for importing a list of email addresses to the blocklist. Each line represents a value to be imported for the 'Email' key.
```text
test@example.com
user@example.com
block@example.com
```
--------------------------------
### Cardholder Data Import Result Example
Source: https://documentation.ixopay.com/manual/docs/pci-data-migration
This is an example of the newline-delimited JSON format for the import result file, showing old and new reference IDs for each card.
```json
{ "newReferenceId": "abcdefghijklmnopqr", "oldReferenceId": "388333B", customerId: "AT-2938938" }
{ "newReferenceId": "8291edi3ndidn393un", "oldReferenceId": "7837373", customerId: "DE-3838832" }
```
--------------------------------
### Combining Expressions Example
Source: https://documentation.ixopay.com/manual/docs/connector/advanced-configuration/field-expression-language
Demonstrates combining multiple functions, including array processing, null coalescing, and string truncation, to create a complex data transformation.
```field-expression-language
truncateAfterNChars(implode(',', array_column(transaction.items, 'name')) ?: transaction.description, 100)
```
--------------------------------
### Configure Dynamic File Name for Transaction Export
Source: https://documentation.ixopay.com/manual/docs/post-processing/jobs/examples
Example of a dynamic file name pattern for exporting transactions to CSV. This pattern includes transaction dates and merchant information.
```text
Transactions_20230109000000_20230115235959_ACME Italy.csv
```
--------------------------------
### Basic Placeholder Usage
Source: https://documentation.ixopay.com/manual/docs/fast
Demonstrates the basic syntax for using placeholders in templates, enclosed in double curly braces.
```html
{{ fields.firstname.id }}
```
--------------------------------
### Initialize Payment.js for Surcharge Calculation
Source: https://documentation.ixopay.com/manual/docs/connector/advanced-configuration/surcharge
Initialize the Payment.js library and set up the callback function for surcharge calculations. This function handles displaying or hiding surcharge amounts based on the response.
```javascript
var paymentJs = new PaymentJs("1.2");
function onSurchargeComplete(surchargeAmount, newTotalAmount) {
if (newTotalAmount) {
// display amount to users
} else {
// hide surcharge amount as no surcharge is charged
}
}
```
--------------------------------
### Configure Cron Expression for Weekly Job Schedule
Source: https://documentation.ixopay.com/manual/docs/post-processing/jobs/examples
Example of a Cron expression to schedule a job to run every Monday at 00:00 UTC. This is used for periodical transaction reports.
```cron
0 0 * * 1
```
--------------------------------
### Enable Surcharge/GST Calculation in Connector Settings
Source: https://documentation.ixopay.com/manual/docs/connector/advanced-configuration/surcharge
Activate Surcharge and GST calculation by adding specific settings to the connector. Enter '1' to enable.
```text
Navigate to the Connector Details Overview - Settings
Type in HPP: enable Surcharge Calculation respective HPP: enable GST Calculation and click + Add
Enter 1 to activate the setting
```
--------------------------------
### Initialize Credit Card Fields with PaymentJs
Source: https://documentation.ixopay.com/manual/docs/tokenization/customer-profiles
Initializes the PaymentJs library for credit card number and CVV fields, applying custom styles.
```javascript
// initialize creditcard fields
let ccForm = $('.payment-form[data-apimethod="Creditcard"]');
if( ccForm.length ){
var publicKey = ccForm.find('input[name="publicKey"]').val();
var numberDivId = 'number_div_' + ccForm.data('method');
var cvvDivId = 'cvv_div_' + ccForm.data('method');
var paymentJs = new PaymentJs("1.2");
// style cc number and cvv field
paymentJs.init(publicKey, numberDivId, cvvDivId, function(payment) {
payment.setNumberStyle({ 'border': '#dddddd solid 1px', 'height': '100%', 'padding-left':'5px' });
payment.setCvvStyle({ 'border': '#dddddd solid 1px', 'height': '100%', 'padding-left':'5px'});
});
}
```
--------------------------------
### Generate Private Key and CSR using CLI
Source: https://documentation.ixopay.com/manual/docs/connector/advanced-configuration/applepay-googlepay
Use these OpenSSL commands to generate a private key and a certificate signing request (CSR) for your merchant identity. Replace YOURCOMPANYNAME and YOURCOMPANYCOUNTRYALPHA2 with your specific details. This method provides the private key directly.
```bash
openssl genrsa -out merchantPrivateKey.key 2048
openssl req -new -key merchantPrivateKey.key -out merchantCertificateSigningRequest.csr \
-subj '/O=YOURCOMPANYNAME/C=YOURCOMPANYCOUNTRYALPHA2'
```
```bash
openssl genrsa -out merchantPrivateKey.key 2048
openssl req -new -key merchantPrivateKey.key -out merchantCertificateSigningRequest.csr \
-subj '/O=IXOPAY/C=AT'
```
--------------------------------
### Configure Dynamic Email Subject for Transaction Report
Source: https://documentation.ixopay.com/manual/docs/post-processing/jobs/examples
Example of a dynamic email subject pattern for periodic transaction reports. This pattern includes merchant name and transaction date ranges.
```text
ACME Italy_Periodic_Transactions_Report_20230109000000_20230115235959
```
--------------------------------
### Pay By Link API Request Body
Source: https://documentation.ixopay.com/manual/docs/connector-specific-features/paybylink
Example of a JSON request body to create a Pay By Link transaction via the API. Set 'sendByEmail' to true or false to control email delivery.
```json
{
"merchantTransactionId": "45756756756756756",
"amount": "9.99",
"currency": "EUR",
"successUrl": "https://example.com/finalize?SUCCESS=1",
"cancelUrl": "https://example.com/finalize?CANCEL=1",
"errorUrl": "https://example.com/finalize?ERROR=1",
"callbackUrl": "https://example.com/postback",
"customer": {
"firstName": "Max",
"lastName": "Mustermann",
"email": "max.mustermann@example.com",
"company": "Huge Company",
"ipAddress": "127.0.0.1"
},
"language": "en",
"payByLink": {
"sendByEmail": false
}
}
```
--------------------------------
### Get Static Asset Link
Source: https://documentation.ixopay.com/manual/docs/fast
Generates a URL to static assets (images, CSS, JS) uploaded to the FAST Editor's static folder. This function is used to embed these assets into templates.
```php
= getStaticLink('path/to/file'); ?>
```
--------------------------------
### Configure Attachment File Name Pattern for Email Export
Source: https://documentation.ixopay.com/manual/docs/post-processing/jobs/examples
Example of a file name pattern to include CSV and XLSX attachments in an email. This uses a regular expression to match files with .csv or .xlsx extensions.
```regex
/\.(csv|xlsx)$/
```
--------------------------------
### Generate Private Key and CSR (Generic)
Source: https://documentation.ixopay.com/manual/docs/connector/advanced-configuration/applepay-googlepay
Use this command to generate a private key and a certificate signing request (CSR) for Apple Pay. Replace placeholders with your company information.
```bash
openssl ecparam -name prime256v1 -genkey -noout -out privateKey.key
openssl req -new -key privateKey.key -out certificateSigningRequest.csr \
-subj '/O=YOURCOMPANYNAME/C=YOURCOMPANYCOUNTRYALPHA2'
```
--------------------------------
### Define Payment Method Specific Fields (Direct Debit)
Source: https://documentation.ixopay.com/manual/docs/connector/multi-method-connector/payment-selection-page
Conditionally display fields like IBAN and BIC for Direct Debit payments using the `apiIdentifier` within a loop. This example shows how to render input fields and error blocks.
```twig
{% if m.apiIdentifier == 'DirectDebit' %}
{% endif %}
```
--------------------------------
### Typical FAST Page Layout Structure
Source: https://documentation.ixopay.com/manual/docs/fast
This snippet shows a standard HTML structure for a FAST payment page layout, including placeholders for doctype, head elements, body scripts, form tags, and the main content insertion point.
```html
{{ html.doctype }}
{{ head.metatags }}
{{ head.css }}
{{ head.js }}
{{ body.jsTop }}
{{ form.open }}
= getContent() ?>
{{ form.close }}
{{ body.jsBottom }}
```