/** * Perform API call to Amazon to validate keys * */ public function _afterSaveCommit() { $data = $this->getFieldsetData(); $isEnabled = $this->getValue(); if ($isEnabled) { $config = array('ServiceURL' => "https://mws.amazonservices.com/Sellers/2011-07-01", 'ProxyHost' => null, 'ProxyPort' => -1, 'ProxyUsername' => null, 'ProxyPassword' => null, 'MaxErrorRetry' => 3); $service = new MarketplaceWebServiceSellers_Client($data['access_key'], $data['access_secret'], 'Login and Pay for Magento', '1.3', $config); $request = new MarketplaceWebServiceSellers_Model_ListMarketplaceParticipationsRequest(); $request->setSellerId($data['seller_id']); try { $service->ListMarketplaceParticipations($request); Mage::getSingleton('core/session')->addSuccess("All of your Amazon API keys are correct!"); } catch (MarketplaceWebServiceSellers_Exception $ex) { if ($ex->getErrorCode() == 'InvalidAccessKeyId') { Mage::getSingleton('core/session')->addError("The Amazon MWS Access Key is incorrect"); } else { if ($ex->getErrorCode() == 'SignatureDoesNotMatch') { Mage::getSingleton('core/session')->addError("The Amazon MWS Secret Key is incorrect"); } else { if ($ex->getErrorCode() == 'InvalidParameterValue') { Mage::getSingleton('core/session')->addError("The Amazon Seller/Merchant ID is incorrect"); } else { if ($ex->getErrorCode() == 'AccessDenied') { Mage::getSingleton('core/session')->addError("The Amazon Seller/Merchant ID does not match the MWS keys provided"); } else { $string = " Error Message: " . $ex->getMessage(); $string .= " Response Status Code: " . $ex->getStatusCode(); $string .= " Error Code: " . $ex->getErrorCode(); Mage::getSingleton('core/session')->addError($string); } } } } } } return parent::_afterSaveCommit(); }