/** * Set access token and include all required classes in the application. */ require_once 'header.php'; /** * This class contains utility functions to create request/response objects for * webservice api. */ require_once 'utils/wob_utils.php'; $wobPayload = new WobPayload($ORIGINS); $objId = strval(rand(1, 100)); switch ($_REQUEST['type']) { case 'loyalty': $loyaltyObject = Loyalty::generateLoyaltyObject(ISSUER_ID, LOYALTY_CLASS_ID, LOYALTY_OBJECT_ID . $objId); $wobPayload->addWalletObjects($loyaltyObject, LOYALTY_OBJECT_ID); break; case 'offer': $offerObject = Offer::generateOfferObject(ISSUER_ID, OFFER_CLASS_ID, OFFER_OBJECT_ID . $objId); $wobPayload->addWalletObjects($offerObject, OFFER_OBJECT_ID); break; case 'giftcard': $giftCardObject = GiftCard::generateGiftCardObject(ISSUER_ID, GIFTCARD_CLASS_ID, GIFTCARD_OBJECT_ID . $objId); $wobPayload->addWalletObjects($giftCardObject, GIFTCARD_OBJECT_ID); break; } // Save to wallet request body. $requestBody = $wobPayload->getSaveToWalletRequest(); // Create the response JWT. $utils = new WobUtils(); echo $jwt = $utils->makeSignedJwt($requestBody, $cred);
$inputJson = file_get_contents('php://input'); $input = json_decode($inputJson, TRUE); $requestObject = $utils->getWebserviceRequestObject($input); //Get linking id the merchant loyalty program account identification. $linkId = is_object($requestObject) ? $requestObject->getParams()->getLinkingId() : NULL; // Get api version from request object. $apiVersion = is_object($requestObject) ? $requestObject->getApiVersion() : '1.0'; // Create loyalty object based on linking id. $loyaltyObjectId = $linkId != NULL ? $linkId : LOYALTY_OBJECT_ID; $loyaltyObject = Loyalty::generateLoyaltyObject(ISSUER_ID, LOYALTY_CLASS_ID, $loyaltyObjectId); $firstName = $requestObject->getParams()->getWalletUser()->getFirstName(); $returnCode = strtoupper($firstName); if (is_object($loyaltyObject)) { // Handle signup and linking. $webResponse = new WebserviceResponse($returnCode); if (strpos($webResponse->getStatus(), ResponseCode::SUCCESS) !== false) { // Generate Web Service Response Body. $responseBody = $utils->generateWebserviceResponse($loyaltyObject, $webResponse, $apiVersion); } else { $errorAction = $linkId != NULL ? ResponseCode::ERROR_INVALID_LINKING_ID : ResponseCode::ERROR_ACCOUNT_ALREADY_LINKED; // For rejected sign-up/linking. $webResponse = new WebserviceResponse($errorAction); $invalidWalletUserFields = array('zipcode', 'phone'); $webResponse->setInvalidWalletUserFields($invalidWalletUserFields); // Generate Web Service Response Body. $responseBody = $utils->generateWebserviceResponse('', $webResponse, $apiVersion); } } // Create the response JWT. echo $jwt = $utils->makeSignedJwt($responseBody, $cred);