Skip to main content

Delete upsell campaign

Delete upsell campaign

Last updated: 19-Jan-2021
Rate this article:

Overview

Use the deleteUpSellCampaign method via JSON-RPC API 6.0 to permanently delete an upsell campaign in any status (active, disabled, expired).

Request parameters

Parameters Type Required/Optional Description
upSellCampaignCode String Required The identifying code of the upsell campaign.

    Request sample

    <?php
    declare(strict_types=1);
    
    class Configuration
    {
        public const MERCHANT_CODE = '';
        public const MERCHANT_KEY = '';
        public const URL = 'http://api.2checkout.com/rpc/6.0';
        public const ACTION = 'deleteUpsellCampaign';
        public const ADDITIONAL_OPTIONS = null;
        public const PAYLOAD = "72937a15-1ffd-43b9-90b2-210d03dcd754";
    }
    
    class Client
    {
        private const LOGIN_METHOD = 'login';
        private $calls = 1;
        private $sessionId;
    
    
        private function generateAuth(): array
        {
            $merchantCode = Configuration::MERCHANT_CODE;
            $key = Configuration::MERCHANT_KEY;
            $date = gmdate('Y-m-d H:i:s');
            $string = strlen($merchantCode) . $merchantCode . strlen($date) . $date;
            $hash = hash_hmac('md5', $string, $key);
    
            return compact('merchantCode', 'date', 'hash');
        }
    
    
        public function login(string $url)
        {
            $payload = $this->generateAuth();
            $response = $this->call($url, array_values($payload), self::LOGIN_METHOD);
            $this->sessionId = $response['result'];
        }
    
    
        public function call(
            string $url = Configuration::URL,
            $payload = Configuration::PAYLOAD,
            string $action = Configuration::ACTION
        ): ?array {
            if (empty($this->sessionId) && $action !== self::LOGIN_METHOD) {
                $this->login($url);
            }
    
            if (!empty($this->sessionId)) {
                $payload = [$this->sessionId, $payload, Configuration::ADDITIONAL_OPTIONS];
            }
            $payload = array_filter($payload);
    
            $request = json_encode([
                'jsonrpc' => '2.0',
                'method' => $action,
                'params' => $payload,
                'id' => $this->calls++,
            ]);
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
            curl_setopt($curl, CURLOPT_SSLVERSION, 0);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json', 'Cookie: XDEBUG_SESSION=PHPSTORM'));
            curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
            $response = curl_exec($curl);
            if(empty($response)) {
                die('Server unavailable');
            }
            echo $response . '</br>';
            return json_decode($response, true);;
        }
    }
    $client = new Client();
    $result = $client->call();
    var_dump($result);
    
    

    Response

    • 204 - 'No content' if SUCCESS
    • 4xx if FAILED with distinct error messages

    Error handling

    Error code Message
    UPSELL_CAMPAIGN_NOT_FOUND Upsell campaign with code test was not found.
    UPSELL_CAMPAIGN_CODE_EMPTY Code is not set
    UPSELL_CAMPAIGN_CODE_TOO_LONG Code exceeds allowed max length (255)

     

    Rate this article:

    Need help?

    Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

    Not yet a Verifone customer?

    We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

    Verifone logo