%PDF- %PDF-
| Direktori : /home1/lightco1/www/plugins/vmpayment/amazon/library/OffAmazonPaymentsNotifications/ |
| Current File : //home1/lightco1/www/plugins/vmpayment/amazon/library/OffAmazonPaymentsNotifications/Client.php |
<?php
/*******************************************************************************
* Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
*
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
* http://aws.amazon.com/apache2.0
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License
* for the
* specific language governing permissions and limitations under the
* License.
* *****************************************************************************
*/
require_once 'OffAmazonPaymentsNotifications/Interface.php';
require_once 'OffAmazonPaymentsNotifications/Impl/SnsMessageParser.php';
require_once 'OffAmazonPaymentsNotifications/Impl/SnsMessageValidator.php';
require_once 'OffAmazonPaymentsNotifications/Impl/OpenSslVerifySignature.php';
require_once 'OffAmazonPaymentsNotifications/Impl/IpnNotificationParser.php';
require_once 'OffAmazonPaymentsNotifications/Impl/XmlNotificationParser.php';
require_once 'OffAmazonPaymentsNotifications/InvalidMessageException.php';
require_once 'OffAmazonPaymentsNotifications/Notification.php';
require_once 'OffAmazonPaymentsNotifications/NotificationMetadata.php';
require_once 'OffAmazonPaymentsNotifications/Model/AuthorizationDetails.php';
require_once 'OffAmazonPaymentsNotifications/Model/AuthorizationNotification.php';
require_once 'OffAmazonPaymentsNotifications/Model/BillingAgreement.php';
require_once 'OffAmazonPaymentsNotifications/Model/BillingAgreementLimits.php';
require_once 'OffAmazonPaymentsNotifications/Model/BillingAgreementNotification.php';
require_once 'OffAmazonPaymentsNotifications/Model/BillingAgreementStatus.php';
require_once 'OffAmazonPaymentsNotifications/Model/CaptureDetails.php';
require_once 'OffAmazonPaymentsNotifications/Model/CaptureNotification.php';
require_once 'OffAmazonPaymentsNotifications/Model/IdList.php';
require_once 'OffAmazonPaymentsNotifications/Model/IpnNotificationMetadata.php';
require_once 'OffAmazonPaymentsNotifications/Model/NotificationImpl.php';
require_once 'OffAmazonPaymentsNotifications/Model/NotificationMetadataImpl.php';
require_once 'OffAmazonPaymentsNotifications/Model/OrderItemCategories.php';
require_once 'OffAmazonPaymentsNotifications/Model/OrderReference.php';
require_once 'OffAmazonPaymentsNotifications/Model/OrderReferenceNotification.php';
require_once 'OffAmazonPaymentsNotifications/Model/OrderReferenceStatus.php';
require_once 'OffAmazonPaymentsNotifications/Model/OrderTotal.php';
require_once 'OffAmazonPaymentsNotifications/Model/Price.php';
require_once 'OffAmazonPaymentsNotifications/Model/RefundDetails.php';
require_once 'OffAmazonPaymentsNotifications/Model/RefundNotification.php';
require_once 'OffAmazonPaymentsNotifications/Model/SellerBillingAgreementAttributes.php';
require_once 'OffAmazonPaymentsNotifications/Model/SellerOrderAttributes.php';
require_once 'OffAmazonPaymentsNotifications/Model/SnsNotificationMetadata.php';
require_once 'OffAmazonPaymentsNotifications/Model/Status.php';
/**
* Implementation of the OffAmazonPaymentsNotifications
* library
*
*/
class OffAmazonPaymentsNotifications_Client
implements OffAmazonPaymentsNotifications_Interface
{
/**
* Store an instance of the sns message validator
* object
*
* @var SnsMessageValidator
*/
private $_snsMessageValidator = null;
/**
* Create an instance of the client class
*
* @return void
*/
public function __construct()
{
$this->_snsMessageValidator
= new SnsMessageValidator(new OpenSslVerifySignature());
}
/**
* Converts a http POST body and headers into
* a notification object
*
* @param array $headers post request headers
* @param string $body post request body, should be json
*
* @throws OffAmazonPaymentsNotifications_InvalidMessageException
*
* @return OffAmazonPaymentNotifications_Notification
*/
public function parseRawMessage($headers, $body)
{
// Is this json, is this
// an sns message, do we have the fields we require
$snsMessage = SnsMessageParser::parseNotification($headers, $body);
// security validation - check that this message is
// from amazon and that it has been signed correctly
$this->_snsMessageValidator->validateMessage($snsMessage);
// Convert to object - convert from basic class to object
$ipnMessage = IpnNotificationParser::parseSnsMessage($snsMessage);
return XmlNotificationParser::parseIpnMessage($ipnMessage);
}
}
?>