|
1 | 1 | <?php
|
2 | 2 |
|
3 |
| -require_once "../vendor/passkit/passkit-php-grpc-sdk/lib/extra/google/api/"; |
| 3 | +use Google\Protobuf\Timestamp; |
| 4 | + |
4 | 5 | require_once "../vendor/autoload.php";
|
5 | 6 |
|
6 | 7 | putenv("GRPC_SSL_CIPHER_SUITES=HIGH+ECDSA");
|
7 | 8 | // create-offer takes a campaignId of an existing campaign, creates a new template (based of default template), creates an offer, and links this offer to the campaign.
|
8 | 9 | // The method returns the offer id.
|
| 10 | +$campaignId = ""; |
9 | 11 | try {
|
10 | 12 | $ca_filename = "ca-chain.pem";
|
11 | 13 | $key_filename = "key.pem";
|
|
32 | 34 | $defaultTemplateRequest = new Io\DefaultTemplateRequest();
|
33 | 35 | $defaultTemplateRequest->setProtocol(101);
|
34 | 36 | $defaultTemplateRequest->setRevision(1);
|
35 |
| - $defaultPassTemplate = new Io\PassTemplate(); |
36 |
| - |
37 |
| - $defaultPassTemplate->$templatesclient->getDefaultTemplate($defaultTemplateRequest)->wait(); |
| 37 | + list($defaultPassTemplate, $status) = $templatesclient->getDefaultTemplate($defaultTemplateRequest)->wait(); |
38 | 38 | if ($status->code !== 0) {
|
39 | 39 | throw new Exception(sprintf('Status Code: %s, Details: %s, Meta: %s', $status->code, $status->details, var_dump($status->metadata)));
|
40 | 40 | }
|
41 |
| - |
42 | 41 | // If you use the default template, you need to set name, description and timezone because these fields are mandatory.
|
43 | 42 | $defaultPassTemplate->setName("Quickstart");
|
44 | 43 | $defaultPassTemplate->setDescription("quick start sample template");
|
45 | 44 | $defaultPassTemplate->setTimezone("America/New_York");
|
46 | 45 |
|
47 | 46 |
|
48 |
| - list($id, $status) = $templatesclient->createTemplate($defaultPassTemplate)->wait(); |
| 47 | + list($template, $status) = $templatesclient->createTemplate($defaultPassTemplate)->wait(); |
49 | 48 | if ($status->code !== 0) {
|
50 | 49 | throw new Exception(sprintf('Status Code: %s, Details: %s, Meta: %s', $status->code, $status->details, var_dump($status->metadata)));
|
51 | 50 | }
|
52 | 51 |
|
53 |
| - |
54 | 52 | // Set the offer body
|
55 | 53 | $offer = new Single_use_coupons\CouponOffer();
|
56 | 54 | $offer->setId("base");
|
57 |
| - $offer->setBeforeRedeemPassTemplateId($defaultPassTemplate->getId()); |
| 55 | + $offer->setCampaignId($campaignId); |
| 56 | + $offer->setBeforeRedeemPassTemplateId($template->getId()); |
58 | 57 | $offer->setOfferTitle("BaseOffer");
|
59 | 58 | $offer->setOfferShortTitle("BaseOffer");
|
60 | 59 | $offer->setOfferDetails("Base offer");
|
61 |
| - $startdate = new DateTime(); |
62 |
| - $enddate = new DateTime(); |
63 |
| - $enddate->setDate(2022, 6, 28); |
64 |
| - $offer->setIssueStartDate($startdate->getTimestamp()); |
65 |
| - $offer->setIssueEndDate($enddate->getTimestamp()); |
| 60 | + $date = new DateTime(); |
| 61 | + $date->setDate(2023, 6, 24); |
| 62 | + $startdate = new Timestamp(); |
| 63 | + $startdate->setSeconds($date->getTimestamp()); |
| 64 | + $enddate = new Timestamp(); |
| 65 | + $date->setDate(2023, 6, 28); |
| 66 | + $enddate->setSeconds($date->getTimestamp()); |
| 67 | + $offer->setIssueStartDate($startdate); |
| 68 | + $offer->setIssueEndDate($enddate); |
66 | 69 |
|
67 | 70 | list($id, $status) = $client->createCouponOffer($offer)->wait();
|
68 | 71 | if ($status->code !== 0) {
|
69 | 72 | throw new Exception(sprintf('Status Code: %s, Details: %s, Meta: %s', $status->code, $status->details, var_dump($status->metadata)));
|
70 | 73 | }
|
71 | 74 | //You can use the offerId displayed below for other coupon methods
|
72 |
| - echo "OfferId" . $offer->getId() . "\n"; |
| 75 | + echo "Offer created: " . $offer->getId() . "\n"; |
73 | 76 | } catch (Exception $e) {
|
74 | 77 | echo $e;
|
75 | 78 | }
|
0 commit comments