Skip to content

Error: strlen(): Argument #1 ($string) must be of type string, Thenextweb\PassGenerator given #47

@pascualkoko

Description

@pascualkoko

Hello, I am trying to create a pass but I am receiving the error of the title. If I use a dd to see it I receive that error but not using it and trying to do the return I am receiving this error:

Symfony\Component\HttpFoundation\Response::setContent(): Argument #1 ($content) must be of type ?string, Illuminate\Support\Facades\Response given, called in /var/app/current/vendor/laravel/framework/src/Illuminate/Http/Response.php on line 72

I checked it all my identifiers and is all ok so I don't know what's happening. Sorry for my english, I am not a native english speaker. This is my code:

// Start here

public function generateAppleWalletPass(Request $request)
    {
        $validator = Validator::make(['kokoId' => $request->kokoId], [
            'kokoId' => ['required', 'string', 'min:1'],
        ]);
        if ($validator->fails()) {
            abort(404);
        }
        $koko = Koko::find(Hashids::decode($request->kokoId)[0]);
        if (isset($koko)) {
            $pass_identifier = $koko->uid;
            $pass = new PassGenerator($pass_identifier);
            $pass_definition = [
                "description"       => "example",
                "formatVersion"     => 1,
                "organizationName"  => "xxxxxxxxx",
                "passTypeIdentifier" => "pass.com.wallet.xxxxxxx",
                "serialNumber"      => "xxxxxxxxxx",
                "teamIdentifier"    => "xxxxxxxxx",
                "foregroundColor"   => "rgb(99, 99, 99)",
                "backgroundColor"   => "rgb(212, 212, 212)",
                "barcode" => [
                    "message"   => "encodedmessageonQR",
                    "format"    => "PKBarcodeFormatQR",
                    "altText"   => "altextfortheQR",
                    "messageEncoding" => "utf-8",
                ],
                "boardingPass" => [
                    "headerFields" => [
                        [
                            "key" => "destinationDate",
                            "label" => "Trip to: BCN-SANTS",
                            "value" => "15/09/2015"
                        ]
                    ],
                    "primaryFields" => [
                        [
                            "key" => "boardingTime",
                            "label" => "MURCIA",
                            "value" => "13:54",
                            "changeMessage" => "Boarding time has changed to %@"
                        ],
                        [
                            "key" => "destination",
                            "label" => "BCN-SANTS",
                            "value" => "21:09"
                        ]

                    ],
                    "secondaryFields" => [
                        [
                            "key" => "passenger",
                            "label" => "Passenger",
                            "value" => "J.DOE"
                        ],
                        [
                            "key" => "bookingref",
                            "label" => "Booking Reference",
                            "value" => "4ZK6FG"
                        ]
                    ],
                    "auxiliaryFields" => [
                        [
                            "key" => "train",
                            "label" => "Train TALGO",
                            "value" => "00264"
                        ],
                        [
                            "key" => "car",
                            "label" => "Car",
                            "value" => "009"
                        ],
                        [
                            "key" => "seat",
                            "label" => "Seat",
                            "value" => "04A"
                        ],
                        [
                            "key" => "classfront",
                            "label" => "Class",
                            "value" => "Tourist"
                        ]
                    ],
                    "backFields" => [
                        [
                            "key" => "ticketNumber",
                            "label" => "Ticket Number",
                            "value" => "7612800569875"
                        ], [
                            "key" => "passenger-name",
                            "label" => "Passenger",
                            "value" => "John Doe"
                        ], [
                            "key" => "classback",
                            "label" => "Class",
                            "value" => "Tourist"
                        ]
                    ],
                    "locations" => [
                        [
                            "latitude" => 37.97479,
                            "longitude" => -1.131522,
                            "relevantText" => "Departure station"
                        ]
                    ],
                    "transitType" => "PKTransitTypeTrain"
                ],
            ];

            $pass->setPassDefinition($pass_definition);

            $pass->addAsset(public_path('img/qr-logo.png'));

            $pkpass = $pass->create();

            dd($pkpass); // Here is where I am receiving first error

            // Second error down here
            return new Response($pkpass, 200, [
                'Content-Transfer-Encoding' => 'binary',
                'Content-Description' => 'File Transfer',
                'Content-Disposition' => 'attachment; filename="pass.pkpass"',
                'Content-length' => strlen($pkpass),
                'Content-Type' => PassGenerator::getPassMimeType(),
                'Pragma' => 'no-cache',
            ]);
        }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions