|
1 | 1 | # DOCUMENTATION
|
2 | 2 |
|
3 |
| -TODO ... |
| 3 | +Please have a look at an example application based on Slim3 framework. |
| 4 | +You can also create your own classes. |
4 | 5 |
|
5 |
| -- Implement Storage class based on \AS2\StorageInterface |
| 6 | +- Implement MessageRepository class based on \AS2\MessageRepositoryInterface |
6 | 7 | - Implement Message class based on \AS2\MessageInterface
|
| 8 | +- Implement PartnerRepository class based on \AS2\PartnerRepositoryInterface |
7 | 9 | - Implement Partner class based on \AS2\PartnerInterface
|
8 | 10 |
|
9 | 11 | ### Example Receive AS2 Message
|
10 | 12 | ```php
|
11 |
| -$server = new \AS2\Server(new \AS2\Management(), new FileStorage()); |
| 13 | +$manager = new \AS2\Management(); |
| 14 | + |
| 15 | +/** @var /AS2/MessageRepositoryInterface $messageRepository */ |
| 16 | +$messageRepository = new MessageRepository(); |
| 17 | + |
| 18 | +/** @var /AS2/PartnerRepositoryInterface $partnerRepository */ |
| 19 | +$partnerRepository = new PartnerRepository(); |
| 20 | + |
| 21 | +$server = new \AS2\Server($manager, $partnerRepository, $messageRepository); |
| 22 | + |
12 | 23 | /** @var \GuzzleHttp\Psr7\Response $response */
|
13 | 24 | $response = $server->excecute();
|
14 |
| - |
15 | 25 | ```
|
16 | 26 |
|
17 | 27 | ### Example Send AS2 Message
|
18 | 28 | ```php
|
19 | 29 |
|
20 | 30 | $manager = new \AS2\Management();
|
21 |
| -/** @var /AS2/StorageInterface $storage */ |
22 |
| -$storage = new FileStorage(); |
23 | 31 |
|
24 |
| -// Init new Message |
25 |
| -$message = $storage->initMessage(['id' => 'test' ...]); |
26 |
| - |
27 |
| -// Init sending Partner |
28 |
| -$sender = $storage->initPartner([ |
29 |
| - 'id' => 'partner_a', |
30 |
| - 'target_url' => 'http://127.0.0.1/as2/receive', |
31 |
| - 'public_key' => file_get_contents('public_a.crt'), |
32 |
| - 'private_key' => file_get_contents('private_a.key'), |
33 |
| - 'private_key_pass_phrase' => 'password', |
34 |
| - 'content_type' => 'application/edi-x12', |
35 |
| - 'compression' => true, |
36 |
| - 'sign' => true, |
37 |
| - 'encrypt' => true, |
38 |
| - 'mdn_mode' => PartnerInterface::MDN_MODE_SYNC, |
39 |
| - 'mdn_options' => 'signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, SHA256' |
40 |
| -]); |
| 32 | +/** @var /AS2/MessageRepositoryInterface $messageRepository */ |
| 33 | +$messageRepository = new MessageRepository(); |
41 | 34 |
|
42 |
| -$message->setSender($sender); |
| 35 | +/** @var /AS2/PartnerRepositoryInterface $partnerRepository */ |
| 36 | +$partnerRepository = new PartnerRepository(); |
43 | 37 |
|
44 |
| -// Init receiving Partner |
45 |
| -$receiver = $storage->initPartner([ |
46 |
| - 'id' => 'partner_b', |
47 |
| - 'target_url' => 'http://127.0.0.1/as2/receive', |
48 |
| - 'public_key' => file_get_contents('public_b.crt'), |
49 |
| - 'private_key' => file_get_contents('private_b.key'), |
50 |
| - 'private_key_pass_phrase' => 'password', |
51 |
| - 'content_type' => 'application/edi-x12', |
52 |
| - 'compression' => true, |
53 |
| - 'sign' => true, |
54 |
| - 'encrypt' => true, |
55 |
| - 'mdn_mode' => PartnerInterface::MDN_MODE_SYNC, |
56 |
| - 'mdn_options' => 'signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, SHA256' |
57 |
| -]); |
| 38 | +// Init partners |
| 39 | +$sender = $partnerRepository->findPartnerById('A'); |
| 40 | +$receiver = $partnerRepository->findPartnerById('B'); |
58 | 41 |
|
59 |
| -$message->setReceiver($receiver); |
| 42 | +// Generate new message ID |
| 43 | +$messageId = \AS2\Utils::generateMessageID($sender); |
| 44 | +$rawMessage = ' |
| 45 | +Content-type: Application/EDI-X12 |
| 46 | +Content-disposition: attachment; filename=payload |
| 47 | +Content-id: <test@test.com> |
| 48 | + |
| 49 | +ISA*00~'; |
60 | 50 |
|
61 |
| -$manager->buildMessage($message); |
| 51 | +// Init new Message |
| 52 | +$message = $messageRepository->createMessage(); |
| 53 | +$message->setMessageId($messageId); |
| 54 | +$message->setSender($sender); |
| 55 | +$message->setReceiver($receiver); |
62 | 56 |
|
63 |
| -$manager->sendMessage($message); |
| 57 | +$payload = $manager->buildMessage($message, $rawMessage); |
| 58 | +$manager->sendMessage($message, $payload); |
64 | 59 |
|
65 |
| -$storage->saveMessage($message); |
| 60 | +$messageRepository->saveMessage($message); |
66 | 61 |
|
67 | 62 | ```
|
0 commit comments