public static Receipt PurchaseWithCC(TransactionDetail transaction)
        {
            var STOREID = transaction.StoreId;
            var APIKEY  = transaction.ApiKey;

            var resPurchaseCC = new ResPurchaseCC();

            resPurchaseCC.SetDataKey(transaction.DataKey);
            resPurchaseCC.SetOrderId(transaction.Identifier);          //order_id
            resPurchaseCC.SetCustId(transaction.CustID);               //CustomerId
            resPurchaseCC.SetAmount(transaction.Amount);
            resPurchaseCC.SetCryptType(transaction.CryptType);

            var mpgReq = new HttpsPostRequest();

            mpgReq.SetProcCountryCode(transaction.ProcessingCountryCode);
            mpgReq.SetTestMode(transaction.IsTestMode);             //false or comment out this line for production transactions
            mpgReq.SetStoreId(STOREID);
            mpgReq.SetApiToken(APIKEY);
            mpgReq.SetTransaction(resPurchaseCC);
            mpgReq.SetStatusCheck(false);
            mpgReq.Send();
            /*********************   REQUEST  ***********************/

            return(mpgReq.GetReceipt());
        }
        private ResPurchaseCC CreatePurchaseWithVault(string dataKey, string orderId, string amount, string cvd)
        {
            // Create purchase with dataKey
            var purchase = new ResPurchaseCC();

            purchase.SetDataKey(dataKey);
            purchase.SetOrderId(orderId);
            purchase.SetAmount(amount);
            purchase.SetCryptType(_monerisPaymentSettings.Crypt);
            purchase.SetDynamicDescriptor(_monerisPaymentSettings.DynamicDescriptor);
            // CVD check
            purchase.SetCvdInfo(CreateCvdInfo(cvd));

            return(purchase);
        }