public SubscriptionResponse Subscribe(string mobileNumber, InputMechanisms inputMechanism, string keyword, string shortCode, int reference) { SubscriptionResponse response = new SubscriptionResponse { MobileNumber = mobileNumber, Service = this.service, NetworkID = CUtility.GetNetworkID(mobileNumber) }; if (IsSubscribed(mobileNumber, this.service.ID)) { response.Status = ServiceMessages.AlreadySubscribed; return(response); } response.SubscriptionID = AddSubscription(service.ID, mobileNumber, response.NetworkID, reference, shortCode, keyword); SendSubscribeResponse(service, response.SubscriptionID, mobileNumber, reference, CSubscriptionEngineCapsule.RequestResults.Success); AddSubscriptionInteraction(response.SubscriptionID, (int)inputMechanism, InteractionTypes.Subscribe); AddSubscriptionInteraction(response.SubscriptionID, (int)inputMechanism, InteractionTypes.Confirmation); PaymentWrapper.WrapperResponse paymentResponse = null; bool result = Execute(service.PaymentSystemClientID, service.ID, response.SubscriptionID, mobileNumber, response.NetworkID, service.BillingAmount, true, reference, out paymentResponse); if (!result) { response.Exception = string.Format("{0}: {1}", paymentResponse.statusDescription, paymentResponse.Exception); response.Status = ServiceMessages.FailedBillings; return(response); } response.Status = ServiceMessages.SubscriptionActivated; return(response); }
public int InsertDoubleOptTRTransaction(int parentTransactionID, string mobileNumber, int subscriptionServiceID, DoubleOptStatus status, string exception, int?subscriptionID, InputMechanisms inputMechanism) { int transactionID = 0; if (!string.IsNullOrEmpty(exception)) { exception = "'" + exception.Replace("'", "''") + "'"; } else { exception = "NULL"; } using (CDB cdb = new CDB("Insert double OPT TR Transaction")) { string queryString = string.Format("Insert_trSubscriptionDoubleOpt {0},'{1}',{2},{3},{4},{5},{6}", parentTransactionID, mobileNumber, subscriptionServiceID, (int)status, exception, subscriptionID == null ? "NULL" : subscriptionID.ToString(), (int)inputMechanism); transactionID = int.Parse(cdb.Execute(queryString, CDB.exmReturnTypes.RETURN_SCALAR).ToString()); } return(transactionID); }
public int InsertDoubleOptTRTransaction(int parentTransactionID, string mobileNumber, int subscriptionServiceID, DoubleOptStatus status, InputMechanisms inputMechanism) { return(InsertDoubleOptTRTransaction(parentTransactionID, mobileNumber, subscriptionServiceID, status, null, null, inputMechanism)); }