Exemplo n.º 1
0
        public void RegisterPayment(JObject data)
        {
            Exception innerEx = null;

            try
            {
                RegisterNotification(data);

                DataSet dsData1 = get_price_data();
                service_id    = DataUtil.AsInteger(dsData1.Tables[0].Rows[0], "service_id", false);
                subservice_id = DataUtil.AsInteger(dsData1.Tables[0].Rows[0], "subservice_id", false);

                DataSet dsDispatch = get_dispatch_data();

                created_on            = DataUtil.AsDateTime(dsDispatch.Tables[0].Rows[0], "created_on");
                short_number          = DataUtil.AsString(dsDispatch.Tables[0].Rows[0], "short_number");
                msg_content_id        = DataUtil.AsInteger(dsDispatch.Tables[0].Rows[0], "msg_content_id", false);
                msg_text              = DataUtil.AsString(dsDispatch.Tables[0].Rows[0], "msg_text");
                package_id            = DataUtil.AsInteger(dsDispatch.Tables[0].Rows[0], "package_id", false);
                suscription_id        = DataUtil.AsInteger64(dsDispatch.Tables[0].Rows[0], "suscription_id", false);
                operator_service_id   = DataUtil.AsInteger(dsDispatch.Tables[0].Rows[0], "operator_service_id", false);
                service_identifier_id = DataUtil.AsInteger(dsDispatch.Tables[0].Rows[0], "service_identifier_id", false);

                Int16 status = -1;
                Registerdebit(data);
                PriorityTime();
                RegisterMobiera_Dispatch(data, short_number);
                RegisterMobiera_Out(status, plannedOn);
            }
            catch (Exception ex)
            {
                innerEx = ex;

                if (errorCode == ERROR_CODE.OK)
                {
                    //ErrorAssignation(ERROR_CODE.GENR_Unidentified, ex.Message, ex.StackTrace, data.ToString());
                    ErrorAssignation(ERROR_CODE.Mobiera_NoSubscription, " No se ha registrado suscripción para el payment  ", ex.StackTrace, data.ToString());
                }
            }
            finally
            {
                if (errorCode != ERROR_CODE.OK)
                {
                    Insert_Error_log();
                }
            }
        }
Exemplo n.º 2
0
        public void RegisterNotification(JObject data)
        {
            string PROC_NOTIFY = "spu_insert_mobiera_payment_notification";

            fullDateFormat  = "yyyy-MM-dd HH:mm:ss";
            shortDateFormat = "yyyy-MM-dd HH:mm";

            JObject joAmountTransaction = JsonUtil.AsJObject(data, "amountTransaction");

            msisdn                = JsonUtil.AsString(joAmountTransaction, "endUserId", "");
            msisdn                = msisdn.Substring(8, msisdn.Length - 8);
            endUserId             = JsonUtil.AsString(joAmountTransaction, "endUserId", "");
            mandate_id            = JsonUtil.AsInteger64(joAmountTransaction, "mandateId");
            identifier_id         = JsonUtil.AsInteger64(joAmountTransaction, "identifierId");
            identifier_label      = JsonUtil.AsString(joAmountTransaction, "identifierLabel", "");
            identifier_class      = JsonUtil.AsString(joAmountTransaction, "identifierClass", "");
            service_identifier_id = JsonUtil.AsInteger(joAmountTransaction, "serviceIdentifierId");
            JObject joPaymentAmount = JsonUtil.AsJObject(joAmountTransaction, "paymentAmount");

            JObject joChargingInformation = JsonUtil.AsJObject(joPaymentAmount, "chargingInformation");

            amount               = JsonUtil.AsDouble(joChargingInformation, "amount");
            currency             = JsonUtil.AsString(joChargingInformation, "currency", "");
            charging_description = JsonUtil.AsString(joChargingInformation, "description", "");

            total_amount_charged = JsonUtil.AsDouble(joPaymentAmount, "totalAmountCharged");
            JObject joCchargingMetaData = JsonUtil.AsJObject(joPaymentAmount, "chargingMetaData");

            channel        = JsonUtil.AsString(joCchargingMetaData, "channel", "");
            tax_amount     = JsonUtil.AsDouble(joCchargingMetaData, "taxAmount");
            charging_event = JsonUtil.AsString(joCchargingMetaData, "chargingEvent", "");

            server_reference_code        = JsonUtil.AsInteger64(joAmountTransaction, "serverReferenceCode");
            resource_url                 = JsonUtil.AsString(joAmountTransaction, "resourceURL", "");
            transaction_operation_status = JsonUtil.AsString(joAmountTransaction, "transactionOperationStatus", "");
            charging_service_exception   = JsonUtil.AsString(joAmountTransaction, "chargingServiceException", "");
            charging_policy_exception    = JsonUtil.AsString(joAmountTransaction, "chargingPolicyException", "");



            try
            {
                SqlParameter[] parameters = new SqlParameter[21];

                parameters[0]           = new SqlParameter("@mobiera_payment_notification_id", DbType.Int64);
                parameters[0].Direction = ParameterDirection.Output;
                parameters[1]           = new SqlParameter("@endUserId", DbType.String);
                parameters[1].Value     = endUserId;
                parameters[2]           = new SqlParameter("@msisdn", DbType.String);
                parameters[2].Value     = msisdn;
                parameters[3]           = new SqlParameter("@mandate_id", DbType.Int64);
                parameters[3].Value     = mandate_id;
                parameters[4]           = new SqlParameter("@identifier_id", DbType.Int64);
                parameters[4].Value     = identifier_id;
                parameters[5]           = new SqlParameter("@identifier_label", DbType.String);
                parameters[5].Value     = identifier_label;
                parameters[6]           = new SqlParameter("@identifier_class", DbType.String);
                parameters[6].Value     = identifier_class;
                parameters[7]           = new SqlParameter("@service_identifier_id", DbType.Int32);
                parameters[7].Value     = service_identifier_id;
                parameters[8]           = new SqlParameter("@amount", DbType.Decimal);
                parameters[8].Value     = amount;
                parameters[9]           = new SqlParameter("@currency", DbType.String);
                parameters[9].Value     = currency;
                parameters[10]          = new SqlParameter("@charging_description", DbType.String);
                parameters[10].Value    = charging_description;
                parameters[11]          = new SqlParameter("@total_amount_charged", DbType.Decimal);
                parameters[11].Value    = total_amount_charged;
                parameters[12]          = new SqlParameter("@channel", DbType.String);
                parameters[12].Value    = channel;
                parameters[13]          = new SqlParameter("@tax_amount", DbType.Decimal);
                parameters[13].Value    = tax_amount;
                parameters[14]          = new SqlParameter("@charging_event", DbType.String);
                parameters[14].Value    = charging_event;
                parameters[15]          = new SqlParameter("@server_reference_code", DbType.Int64);
                parameters[15].Value    = server_reference_code;
                parameters[16]          = new SqlParameter("@resource_url", DbType.String);
                parameters[16].Value    = resource_url;
                parameters[17]          = new SqlParameter("@transaction_operation_status", DbType.String);
                parameters[17].Value    = transaction_operation_status;
                parameters[18]          = new SqlParameter("@created_by", DbType.Int32);
                parameters[18].Value    = 1;
                parameters[19]          = new SqlParameter("@charging_service_exception", DbType.String);
                parameters[19].Value    = charging_service_exception;
                parameters[20]          = new SqlParameter("@charging_policy_exception", DbType.String);
                parameters[20].Value    = charging_policy_exception;

                ExecuteNonQuery(InstanceName, CommandType.StoredProcedure, PROC_NOTIFY, parameters);
                mobiera_payment_notification_id = DataUtil.AsInteger64(parameters[0].Value, false);
            }
            catch (Exception ex)
            {
                ErrorAssignation(ERROR_CODE.GENR_NewIDNotGenerated, ex.Message, ex.StackTrace, url);

                throw ex;
            }

            finally
            {
                if (errorCode != ERROR_CODE.OK)
                {
                    Insert_Error_log();
                }
            }

            //return mobiera_payment_notification_id;
        }