-
-
Notifications
You must be signed in to change notification settings - Fork 82
/
example_scor.php
87 lines (75 loc) · 2.48 KB
/
example_scor.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php declare(strict_types=1);
use Sprain\SwissQrBill as QrBill;
require __DIR__ . '/../vendor/autoload.php';
// This is an example of how to create a qr bill with a reference in SCOR format instead of TYPE_QR.
// Create a new instance of QrBill, containing default headers with fixed values
$qrBill = QrBill\QrBill::create();
// Add creditor information
// Who will receive the payment and to which bank account?
$qrBill->setCreditor(
QrBill\DataGroup\Element\CombinedAddress::create(
'Robert Schneider AG',
'Rue du Lac 1268',
'2501 Biel',
'CH'
)
);
$qrBill->setCreditorInformation(
QrBill\DataGroup\Element\CreditorInformation::create(
'CH9300762011623852957' // With SCOR, this is a classic iban. QR-IBANs will not be valid here.
)
);
// Add debtor information
// Who has to pay the invoice? This part is optional.
//
// Notice how you can use two different styles of addresses: CombinedAddress or StructuredAddress.
// They are interchangeable for creditor as well as debtor.
$qrBill->setUltimateDebtor(
QrBill\DataGroup\Element\StructuredAddress::createWithStreet(
'Pia-Maria Rutschmann-Schnyder',
'Grosse Marktgasse',
'28',
'9400',
'Rorschach',
'CH'
)
);
// Add payment amount information
// What amount is to be paid?
$qrBill->setPaymentAmountInformation(
QrBill\DataGroup\Element\PaymentAmountInformation::create(
'CHF',
2500.25
)
);
// Add payment reference
// This is what you will need to identify incoming payments.
$qrBill->setPaymentReference(
QrBill\DataGroup\Element\PaymentReference::create(
QrBill\DataGroup\Element\PaymentReference::TYPE_SCOR,
QrBill\Reference\RfCreditorReferenceGenerator::generate('I20200631')
)
);
// Optionally, add some human-readable information about what the bill is for.
$qrBill->setAdditionalInformation(
QrBill\DataGroup\Element\AdditionalInformation::create(
'Invoice 123456, Gardening work'
)
);
// Time to output something!
//
// Get the QR code image …
try {
$qrBill->getQrCode()->writeFile(__DIR__ . '/qr.png');
$qrBill->getQrCode()->writeFile(__DIR__ . '/qr.svg');
} catch (Exception) {
foreach ($qrBill->getViolations() as $violation) {
print $violation->getMessage()."\n";
}
exit;
}
// Next: Output full payment parts, depending on the format you want to use:
//
// - FpdfOutput/fpdf-example.php
// - HtmlOutput/html-example.php
// - TcPdfOutput/tcpdf-example.php