public static void RefundFullExplicit(PaySession sess) { var charge = sess.Charge(FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, new NFX.Financial.Amount("usd", 20.00M), true, "Refund Full Explicit Charge"); sess.Refund(charge, 20.00M); }
/// <summary> /// Charges funds from credit card to current stripe account. /// Parameter "to" is unused in stripe provider. /// </summary> public override Transaction Charge(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, bool capture = true, string description = null, object extraData = null) { var stripeSession = (StripeSession)session; var ta = Charge(stripeSession, context, from, to, amount, capture, description, extraData); return(ta); }
public static void RefundDifferentCurrency(PaySession sess) { var chargeTA = sess.Charge(null, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, new NFX.Financial.Amount("usd", 20.00M), true, "Refund Full Explicit Charge"); var refundTA = chargeTA.Refund(null, new NFX.Financial.Amount("eur", 15.00M), "duplicate"); }
private bool LogOUT() { Thread t = new Thread(() => { try { // create/read configuration from a configuration file PayConfiguration config = createConfigFromFile(mPfad); // start a new session PaySession session = new PaySession(); // we define a message listener for events (optional) MyMessageListener msgList = new MyMessageListener(lbl_Status, btn_OK); session.setListener(msgList); // login (this is always the first communication to the EFT) mTerminal = session.login(config); // logout at last session.logout(); } catch (PayException x) { // catch all PayExceptions and write to console Console.WriteLine(x.toString()); } }); t.Start(); return(true); }
public static void TransferToCard(PaySession sess) { var transferTA = sess.Transfer(null, Account.EmptyInstance, FakePaySystemHost.CARD_DEBIT_ACCOUNT_STRIPE_CORRECT, new NFX.Financial.Amount("usd", 27.00M)); Assert.IsNotNull(transferTA); }
public static void TransferToCardWithBillingAddressInfo(PaySession sess) { var transferTA = sess.Transfer(null, Account.EmptyInstance, FakePaySystemHost.CARD_DEBIT_ACCOUNT_STRIPE_CORRECT_WITH_ADDRESS, new NFX.Financial.Amount("usd", 55.00M)); Assert.IsNotNull(transferTA); }
protected internal override bool DoRefresh(PaySession session, Transaction transaction, object extraData = null) { var ps = (PayPalSession)session; bool retry = true; while (true) { try { var authToken = ps.AuthorizationToken; if (transaction.Status == TransactionStatus.Promised) { return(doTransfer(ps, authToken, transaction, extraData)); } return(doRefresh(ps, authToken, transaction, extraData)); } catch (System.Net.WebException ex) { var status = ((HttpWebResponse)ex.Response).StatusCode; if (status == HttpStatusCode.Unauthorized && retry) { Log(MessageType.Warning, "DoRefresh()", "Unauthorized payment. Trying to refresh OAuth token."); retry = false; ps.ResetAuthorizationToken(); continue; } throw; } } }
private Transaction createPayoutTransaction(PaySession session, ITransactionContext context, JSONDataMap response, Account to, Amount amount, string description = null) { var batchID = response.GetNodeByPath(RESPONSE_BATCH_HEADER, RESPONSE_BATCH_ID); object itemID = null; var items = response.GetNodeByPath(RESPONSE_ITEMS) as JSONDataArray; if (items != null && items.Count > 0) { // for the moment there is only one possible payment in a batch itemID = ((JSONDataMap)items[0]).GetNodeByPath(RESPONSE_ITEMS_ITEMID); } var processorToken = new { batchID = batchID.AsString(), itemID = itemID.AsString() }; var transactionDate = response.GetNodeByPath(RESPONSE_BATCH_HEADER, RESPONSE_TIME_COMPLETED) .AsDateTime(App.TimeSource.UTCNow); var transactionID = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Transfer); return(new Transaction(transactionID, TransactionType.Transfer, this.Name, processorToken, Account.EmptyInstance, to, amount, transactionDate, description)); }
public static void RefundFullTwoParts(PaySession sess) { var charge = sess.Charge(FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, new NFX.Financial.Amount("usd", 20.00M), true, "Refund Full Explicit Charge"); sess.Refund(charge, 15.00M, "fraudulent"); sess.Refund(charge, 5.00M, "requested_by_customer"); }
protected override void DoStoreAccountData(PaySession session, IActualAccountData accoundData) { lock (s_MockActualAccountDatas) { s_MockActualAccountDatas.RemoveAll(ad => ad.Account == accoundData.Account); s_MockActualAccountDatas.Add(accoundData); } }
protected override void DoStoreTransaction(PaySession session, Transaction tran) { lock (s_TransactionList) { s_TransactionList.RemoveAll(tr => tr.ID.Equals(tran.ID)); s_TransactionList.Add(tran); } }
private bool ONLine() { Thread t = new Thread(() => { try { //-------------- // create/read configuration from a configuration file PayConfiguration config = createConfigFromFile(mPfad); // start a new session PaySession session = new PaySession(); // we define a message listener for events (optional) MyMessageListener msgList = new MyMessageListener(lbl_Status, btn_OK); session.setListener(msgList); if (!session.isLoggedIn()) { // login (this is always the first communication to the EFT) mTerminal = session.login(config); } try { // Now we start a payment of 1 cent // First we create the result object PayMedia PayMedia media = new PayMedia(); // Then we start the authorisation of the card short payType = PayTerminal.__Fields.PAY_TYPE_AUTOMATIC; PayTransaction transaction = mTerminal.payment(mBetrag, payType, media); // When we are here, the given card was accepted. We commit the transaction. // If transaction is null, the device doesn't support commit and we are finished. if (transaction != null) { transaction.commit(media); } } finally { } } catch (PayException x) { // catch all PayExceptions and write to console Console.WriteLine(x.toString()); } }); t.Start(); return(true); }
public static void ChargeWithBillingAddressInfo(PaySession sess) { Assert.IsNotNull(sess); var ta = sess.Charge(null, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT_WITH_ADDRESS, Account.EmptyInstance, new NFX.Financial.Amount("usd", 15.75M), true, "test payment"); Assert.IsNotNull(ta); }
public static void ChargeCommon(PaySession sess) { Assert.IsNotNull(sess); var ta = sess.Charge(FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, new NFX.Financial.Amount("usd", 15.75M), true, "test payment"); Assert.IsNotNull(ta); }
public static void RefundFullExplicit(PaySession sess) { var charge = sess.Charge(null, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, new NFX.Financial.Amount("usd", 20.00M), true, "Refund Full Explicit Charge"); FakePaySystemHost.Instance.SaveTransaction(charge); var refundTA = charge.Refund(null, new NFX.Financial.Amount("usd", 20.00M)); Assert.IsNotNull(refundTA); }
public static void CaptureImplicitTotal(PaySession sess) { var charge = sess.Charge(null, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, new Financial.Amount("usd", 17.25M), false, "test payment"); Assert.IsFalse(charge.IsCaptured); charge.Capture(null); Assert.IsTrue(charge.IsCaptured); }
protected internal override Transaction DoTransfer(PaySession session, Account from, Account to, Amount amount, string description = null, object extraData = null) { if (description.IsNullOrWhiteSpace()) { description = m_PayoutNote; } return(new Transaction( session.GenerateTransactionID(TransactionType.Transfer), TransactionType.Transfer, TransactionStatus.Promised, from, to, Name, null, App.TimeSource.UTCNow, amount, description: description, extraData: extraData)); }
protected override object DoGenerateTransactionID(PaySession session, TransactionType type) { if (m_NextTransactionID != null) { var id = m_NextTransactionID; m_NextTransactionID = null; return(id); } var eLink = new ELink((((ulong)ExternalRandomGenerator.Instance.NextRandomInteger) << 32) + ((ulong)ExternalRandomGenerator.Instance.NextRandomInteger), null); return(eLink.Link); }
public static void CaptureExplicitTotal(PaySession sess) { var amount = new NFX.Financial.Amount("usd", 17.25M); var charge = sess.Charge(null, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, amount, false, "test payment"); Assert.AreEqual(new NFX.Financial.Amount("usd", .0M), charge.AmountCaptured); charge.Capture(null, amount); Assert.AreEqual(amount, charge.AmountCaptured); }
/// <summary> /// In this implementation returns transaction from memory list by id /// </summary> protected override Transaction DoFetchTransaction(PaySession session, object id) { byte[] buf; if (!m_Transactions.TryGetValue(id, out buf)) { throw new NFXException("Couldn't find transaction by id '{0}'".Args(id)); } var ta = deserializeTransaction(buf); return(ta); }
public override Transaction Refund(PaySession session, ITransactionContext context, ref Transaction charge, Financial.Amount?amount = null, string description = null, object extraData = null) { var refundAmount = amount ?? charge.Amount; var created = DateTime.UtcNow; var taId = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Refund); var refundTA = Transaction.Refund(taId, this.Name, taId, Account.EmptyInstance, charge.From, refundAmount, created, description, relatedTransactionID: charge.ID); StatRefund(charge, amount); return(refundTA); }
public static void RefundFullImplicit(PaySession sess) { var amountToRefund = new NFX.Financial.Amount("usd", 17.25M); var charge = sess.Charge(FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, amountToRefund, true, "test payment"); Assert.AreEqual(new NFX.Financial.Amount("usd", .0M), charge.AmountRefunded); sess.StoreTransaction(charge); sess.Refund(charge); Assert.AreEqual(amountToRefund, charge.AmountRefunded); }
public static void RefundFullImplicit(PaySession sess) { var charge = sess.Charge(null, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, new Financial.Amount("usd", 17.25M), true, "test payment"); Assert.IsFalse(charge.IsRefunded); FakePaySystemHost.Instance.SaveTransaction(charge); var refund = charge.Refund(null); Assert.IsTrue(charge.IsRefunded); Assert.AreEqual(charge.ID, refund.ParentTransactionID); }
public static void CapturePartial(PaySession sess) { var chargeAmount = new NFX.Financial.Amount("usd", 17.25M); var charge = sess.Charge(FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, chargeAmount, false, "test payment"); Assert.AreEqual(new NFX.Financial.Amount("usd", .0M), charge.AmountCaptured); var captureAmount = 10.00M; sess.Capture(charge, amount: captureAmount); Assert.AreEqual(captureAmount, charge.AmountCaptured); }
private Transaction doTransfer(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, string description = null, object extraData = null) { var id = Log(MessageType.Info, "doTransfer()", StringConsts.PAYPAL_PAYOUT_MESSAGE.Args(to, amount)); try { var payPalSession = session as PayPalSession; var actualAccountData = PaySystemHost.AccountToActualData(context, to); var request = new WebClient.RequestParams { Caller = this, Uri = new Uri(m_ApiUri + URI_PAYOUTS), QueryParameters = new Dictionary <string, string> { { PRM_SYNC_MODE, m_SyncMode.AsString() } }, Method = HTTPRequestMethod.POST, ContentType = ContentType.JSON, Headers = new Dictionary <string, string> { { HDR_AUTHORIZATION, HDR_AUTHORIZATION_OAUTH.Args(payPalSession.AuthorizationToken.AccessToken) }, }, Body = getPayoutJSONBody(actualAccountData, amount, description) }; var response = WebClient.GetJson(request); Log(MessageType.Info, "doTransfer()", response.ToJSON(), null, id); checkPayoutStatus(response, payPalSession); var transaction = createPayoutTransaction(session, context, response, to, amount, description); StatTransfer(amount); return(transaction); } catch (Exception ex) { StatTransferError(); var message = StringConsts.PAYPAL_PAYOUT_ERROR.Args(to, amount, ex.ToMessageWithType()); var error = PayPalPaymentException.ComposeError(message, ex); Log(MessageType.Error, "doTransfer()", error.Message, ex, id); throw error; } }
/// <summary> /// Transfers funds from current Stripe account to user account supplied in "to" parameter /// ("from" parameter is not used in Stripe implementation /// </summary> public override Transaction Transfer(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, string description = null, object extraData = null) { var stripeSession = (StripeSession)session; var recipientID = createRecipient(stripeSession, context, to, description); try { var payment = transfer(stripeSession, context, recipientID, to, amount, description); return(payment); } finally { deleteRecipient(stripeSession, recipientID); } }
/// <summary> /// Transfers funds from current Stripe account to user account supplied in "to" parameter /// ("from" parameter is not used in Stripe implementation /// </summary> protected internal override Transaction DoTransfer(PaySession session, Account from, Account to, Amount amount, string description = null, object extraData = null) { var stripeSession = (StripeSession)session; var recipientID = createRecipient(stripeSession, to, description); try { var payment = doTransfer(stripeSession, recipientID, to, amount, description, extraData); return(payment); } finally { deleteRecipient(stripeSession, recipientID); } }
/// <summary> /// Transfers funds from current application's business account to PayPal user account. /// 'from' account isn't used as current application's business account is used instead. /// </summary> public override Transaction Transfer(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, string description = null, object extraData = null) { try { return(doTransfer(session, context, from, to, amount, description, extraData)); } catch (System.Net.WebException ex) { var status = ((HttpWebResponse)ex.Response).StatusCode; if (status == HttpStatusCode.Unauthorized) { Log(MessageType.Error, "Transfer()", StringConsts.PAYPAL_UNAUTHORIZED_MESSAGE); refreshOAuthToken(((PayPalSession)session).ConnectionParameters); } return(doTransfer(session, context, from, to, amount, description, extraData)); } }
public static void RefundFullTwoParts(PaySession sess) { var charge = sess.Charge(null, FakePaySystemHost.CARD_ACCOUNT_STRIPE_CORRECT, Account.EmptyInstance, new NFX.Financial.Amount("usd", 20.00M), true, "Refund Full Explicit Charge"); FakePaySystemHost.Instance.SaveTransaction(charge); var refund1 = charge.Refund(null, new NFX.Financial.Amount("usd", 15.00M), "fraudulent"); Assert.IsNotNull(refund1); Assert.AreEqual(charge.ID, refund1.ParentTransactionID); FakePaySystemHost.Instance.SaveTransaction(refund1); var refund2 = charge.Refund(null, new NFX.Financial.Amount("usd", 5.00M), "requested_by_customer"); Assert.IsNotNull(refund2); Assert.AreEqual(refund2.ParentTransactionID, charge.ID); }
/// <summary> /// The operation is not supported in PayPal payout action. /// </summary> public override Transaction Charge(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, bool capture = true, string description = null, object extraData = null) { throw new NotSupportedException(); }
public override void Capture(PaySession session, ITransactionContext context, ref Transaction charge, Financial.Amount? amount = null, string description = null, object extraData = null) { StatCapture(charge, amount); }
public override Transaction Charge(PaySession session, ITransactionContext context, Account from, Account to, Financial.Amount amount, bool capture = true, string description = null, object extraData = null) { var fromActualData = PaySystemHost.AccountToActualData(context, from); if (fromActualData == null) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_UNKNOWN_ACCOUNT_ERROR.Args(from) + this.GetType().Name + ".Charge"); } if (m_Accounts.CreditCardDeclined.Any(c => c.AccountNumber == fromActualData.AccountNumber)) { StatChargeError(); throw new PaymentMockException(this.GetType().Name + ".Charge: card '{0}' declined".Args(fromActualData)); } if (m_Accounts.CreditCardLuhnError.Any(c => c.AccountNumber == fromActualData.AccountNumber)) { StatChargeError(); throw new PaymentMockException(this.GetType().Name + ".Charge: card number '{0}' is incorrect".Args(fromActualData)); } AccountData foundAccount = null; foundAccount = m_Accounts.CreditCardsCorrect.FirstOrDefault(c => c.AccountNumber == fromActualData.AccountNumber); if (foundAccount != null) { if (foundAccount.CardExpirationYear != fromActualData.CardExpirationYear) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_INVALID_EXPIRATION_DATE_ERROR .Args(fromActualData.CardExpirationYear, fromActualData.CardExpirationMonth) + this.GetType().Name + ".Charge"); } if (foundAccount.CardExpirationMonth != fromActualData.CardExpirationMonth) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_INVALID_EXPIRATION_DATE_ERROR .Args(fromActualData.CardExpirationYear, fromActualData.CardExpirationMonth) + this.GetType().Name + ".Charge"); } if (foundAccount.CardVC != fromActualData.CardVC) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_INVALID_CVC_ERROR + this.GetType().Name + ".Charge"); } var created = DateTime.UtcNow; var taId = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Charge); var ta = Transaction.Charge(taId, this.Name, taId, from, to, amount, created, description); StatCharge(amount); return ta; } foundAccount = m_Accounts.CreditCardCorrectWithAddr.FirstOrDefault(c => c.AccountNumber == fromActualData.AccountNumber); if (foundAccount != null) { if (foundAccount.CardExpirationYear != fromActualData.CardExpirationYear) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_INVALID_EXPIRATION_DATE_ERROR .Args(fromActualData.CardExpirationYear, fromActualData.CardExpirationMonth) + this.GetType().Name + ".Charge"); } if (foundAccount.CardExpirationMonth != fromActualData.CardExpirationMonth) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_INVALID_EXPIRATION_DATE_ERROR .Args(fromActualData.CardExpirationYear, fromActualData.CardExpirationMonth) + this.GetType().Name + ".Charge"); } if (foundAccount.CardVC != fromActualData.CardVC) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_INVALID_CVC_ERROR.Args(fromActualData.CardVC) + this.GetType().Name + ".Charge"); } if (foundAccount.BillingAddress1 != fromActualData.BillingAddress1 || foundAccount.BillingAddress2 != fromActualData.BillingAddress2 || foundAccount.BillingCountry != fromActualData.BillingCountry || foundAccount.BillingCity != fromActualData.BillingCity || foundAccount.BillingPostalCode != fromActualData.BillingPostalCode || foundAccount.BillingRegion != fromActualData.BillingRegion || foundAccount.BillingEmail != fromActualData.BillingEmail || foundAccount.BillingPhone != fromActualData.BillingPhone) { StatChargeError(); throw new PaymentMockException(StringConsts.PAYMENT_INVALID_ADDR_ERROR + this.GetType().Name + ".Charge"); } var created = DateTime.UtcNow; var taId = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Charge); var ta = Transaction.Charge(taId, this.Name, taId, from, to, amount, created, description); StatCharge(amount); return ta; } throw new PaymentException(StringConsts.PAYMENT_INVALID_CARD_NUMBER_ERROR + this.GetType().Name + ".Charge"); }
/// <summary> /// Transfers funds from current Stripe account to user account supplied in "to" parameter /// ("from" parameter is not used in Stripe implementation /// </summary> public override Transaction Transfer(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, string description = null, object extraData = null) { var stripeSession = (StripeSession)session; var recipientID = createRecipient(stripeSession, context, to, description); try { var payment = transfer(stripeSession, context, recipientID, to, amount, description); return payment; } finally { deleteRecipient(stripeSession, recipientID); } }
public override Transaction Charge(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, bool capture = true, string description = null, object extraData = null) { return Charge((BraintreeSession)session, context, from, to, amount, capture, description, extraData); }
/// <summary> /// Captures the payment of this, uncaptured, charge. /// This is the second half og the two-step payment flow, where first you created a charge /// with the capture option set to false. /// Uncaptured payment expires exactly seven days after it is created. /// If a payment is not captured by that pooint of time, it will be marked as refunded and will no longer be capturable. /// If set the amount of capture must be less than or equal to the original amount. /// Developers, don't call this method directly. Call Transaction.Capture instead. /// </summary> public override void Capture(PaySession session, ITransactionContext context, ref Transaction charge, Amount? amount = null, string description = null, object extraData = null) { Capture((StripeSession)session, context, ref charge, amount, description, extraData); }
private Transaction createPayoutTransaction(PaySession session, ITransactionContext context, JSONDataMap response, Account to, Amount amount, string description = null) { var batchID = response.GetNodeByPath(RESPONSE_BATCH_HEADER, RESPONSE_BATCH_ID); object itemID = null; var items = response.GetNodeByPath(RESPONSE_ITEMS) as JSONDataArray; if (items != null && items.Count > 0) { // for the moment there is only one possible payment in a batch itemID = ((JSONDataMap)items[0]).GetNodeByPath(RESPONSE_ITEMS_ITEMID); } var processorToken = new { batchID = batchID.AsString(), itemID = itemID.AsString() }; var transactionDate = response.GetNodeByPath(RESPONSE_BATCH_HEADER, RESPONSE_TIME_COMPLETED) .AsDateTime(App.TimeSource.UTCNow); var transactionID = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Transfer); return new Transaction(transactionID, TransactionType.Transfer, this.Name, processorToken, Account.EmptyInstance, to, amount, transactionDate, description); }
private Transaction doTransfer(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, string description = null, object extraData = null) { var id = Log(MessageType.Info, "doTransfer()", StringConsts.PAYPAL_PAYOUT_MESSAGE.Args(to, amount)); try { var payPalSession = session as PayPalSession; var actualAccountData = PaySystemHost.AccountToActualData(context, to); var request = new WebClient.RequestParams { Caller = this, Uri = new Uri(m_ApiUri + URI_PAYOUTS), QueryParameters = new Dictionary<string, string> { { PRM_SYNC_MODE, m_SyncMode.AsString() } }, Method = HTTPRequestMethod.POST, ContentType = ContentType.JSON, Headers = new Dictionary<string, string> { { HDR_AUTHORIZATION, HDR_AUTHORIZATION_OAUTH.Args(payPalSession.AuthorizationToken.AccessToken) }, }, Body = getPayoutJSONBody(actualAccountData, amount, description) }; var response = WebClient.GetJson(request); Log(MessageType.Info, "doTransfer()", response.ToJSON(), null, id); checkPayoutStatus(response); var transaction = createPayoutTransaction(session, context, response, to, amount, description); StatTransfer(amount); return transaction; } catch (Exception ex) { StatTransferError(); var message = StringConsts.PAYPAL_PAYOUT_ERROR.Args(to, amount, ex.ToMessageWithType()); var error = PayPalPaymentException.ComposeError(message, ex); Log(MessageType.Error, "doTransfer()", error.Message, ex, id); throw error; } }
/// <summary> /// Transfers funds from current application's business account to PayPal user account. /// 'from' account isn't used as current application's business account is used instead. /// </summary> public override Transaction Transfer(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, string description = null, object extraData = null) { try { return doTransfer(session, context, from, to, amount, description, extraData); } catch (System.Net.WebException ex) { var status = ((HttpWebResponse)ex.Response).StatusCode; if (status == HttpStatusCode.Unauthorized) { Log(MessageType.Error, "Transfer()", StringConsts.PAYPAL_UNAUTHORIZED_MESSAGE); refreshOAuthToken(((PayPalSession)session).ConnectionParameters); } return doTransfer(session, context, from, to, amount, description, extraData); } }
public override Transaction Refund(PaySession session, ITransactionContext context, ref Transaction charge, Financial.Amount? amount = null, string description = null, object extraData = null) { var refundAmount = amount ?? charge.Amount; var created = DateTime.UtcNow; var taId = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Refund); var refundTA = new Transaction(taId, TransactionType.Refund, this.Name, taId, Account.EmptyInstance, charge.From, refundAmount, created, description, relatedTransactionID: charge.ID, canRefund: false); StatRefund(charge, amount); return refundTA; }
/// <summary> /// Charges funds from credit card to current stripe account. /// Parameter "to" is unused in stripe provider. /// </summary> public override Transaction Charge(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, bool capture = true, string description = null, object extraData = null) { var stripeSession = (StripeSession)session; var ta = Charge(stripeSession, context, from, to, amount, capture, description, extraData); return ta; }
public override Transaction Transfer(PaySession session, ITransactionContext context, Account from, Account to, Amount amount, string description = null, object extraData = null) { throw new NotImplementedException(); }
/// <summary> /// The operation is not supported in PayPal payout action. /// </summary> public override Transaction Refund(PaySession session, ITransactionContext context, ref Transaction charge, Amount? amount = default(Amount?), string description = null, object extraData = null) { throw new NotSupportedException(); }
/// <summary> /// The operation is not supported in PayPal payout action. /// </summary> public override PaymentException VerifyPotentialTransaction(PaySession session, ITransactionContext context, bool transfer, IActualAccountData from, IActualAccountData to, Amount amount) { throw new NotSupportedException(); }
public object GenerateClientToken(PaySession session) { return GenerateClientToken((BraintreeSession)session); }
public override Transaction Transfer(PaySession session, ITransactionContext context, Account from, Account to, Financial.Amount amount, string description = null, object extraData = null) { var actualAccountData = PaySystemHost.AccountToActualData(context, to); if (actualAccountData == null) { StatTransferError(); throw new PaymentMockException(StringConsts.PAYMENT_UNKNOWN_ACCOUNT_ERROR.Args(from) + this.GetType().Name + ".Transfer"); } AccountData accountData = null; accountData = m_Accounts.DebitBankCorrect.FirstOrDefault(c => c.AccountNumber == actualAccountData.AccountNumber && c.CardExpirationYear == actualAccountData.CardExpirationYear && c.CardExpirationMonth == actualAccountData.CardExpirationMonth && c.CardVC == actualAccountData.CardVC); if (accountData != null) { var created = DateTime.Now; var taId = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Transfer); var ta = Transaction.Transfer(taId, this.Name, taId, Account.EmptyInstance, to, amount, created, description, extraData); StatTransfer(amount); return ta; } accountData = m_Accounts.DebitCardCorrect.FirstOrDefault(c => c.AccountNumber == actualAccountData.AccountNumber && c.CardExpirationYear == actualAccountData.CardExpirationYear && c.CardExpirationMonth == actualAccountData.CardExpirationMonth && c.CardVC == actualAccountData.CardVC); if (accountData != null) { var created = DateTime.Now; var taId = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Transfer); var ta = Transaction.Transfer(taId, this.Name, taId, Account.EmptyInstance, to, amount, created, description, extraData); StatTransfer(amount); return ta; } accountData = m_Accounts.DebitCardCorrectWithAddr.FirstOrDefault(c => c.AccountNumber == actualAccountData.AccountNumber && c.CardExpirationYear == actualAccountData.CardExpirationYear && c.CardExpirationMonth == actualAccountData.CardExpirationMonth && c.CardVC == actualAccountData.CardVC && c.BillingAddress1 != actualAccountData.BillingAddress1 && c.BillingAddress2 != actualAccountData.BillingAddress2 && c.BillingCountry != actualAccountData.BillingCountry && c.BillingCity != actualAccountData.BillingCity && c.BillingPostalCode != actualAccountData.BillingPostalCode && c.BillingRegion != actualAccountData.BillingRegion && c.BillingEmail != actualAccountData.BillingEmail && c.BillingPhone != actualAccountData.BillingPhone); if (accountData != null) { var created = DateTime.Now; var taId = PaySystemHost.GenerateTransactionID(session, context, TransactionType.Transfer); var ta = Transaction.Transfer(taId, this.Name, taId, Account.EmptyInstance, to, amount, created, description, extraData); StatTransfer(amount); return ta; } StatTransferError(); throw new PaymentException(StringConsts.PAYMENT_INVALID_CARD_NUMBER_ERROR + this.GetType().Name + ".Transfer"); }
static void Main(string[] args) { try { // create/read configuration from a configuration file PayConfiguration config = createConfigFromFile("../../etc/zvt.cfg"); // start a new session PaySession session = new PaySession(); // we define a message listener for events (optional) session.setListener(new MyMessageListener()); // get the software version of LUIS ePayment Console.WriteLine("Version=" + session.getVersion()); // login (this is always the first communication to the EFT) PayTerminal terminal = session.login(config); try { // let's have a look at the settings within the EFT PayResult result = terminal.settings(); Console.WriteLine(result.toString()); // do some selftest result = terminal.selftest(); Console.WriteLine(result.toString()); // try to connect the network provider and get the limits for a payment result = terminal.diagnose(PayTerminal.__Fields.DIAGNOSE_EXTENDED); Console.WriteLine(result.toString()); // Now we start a payment of 1 cent // First we create the result object PayMedia PayMedia media = new PayMedia(); // Then we start the authorisation of the card int cents = 1; short payType = PayTerminal.__Fields.PAY_TYPE_AUTOMATIC; PayTransaction transaction = terminal.payment(cents, payType, media); Console.WriteLine(media.toString()); // When we are here, the given card was accepted. We commit the transaction. // If transaction is null, the device doesn't support commit and we are finished. if (transaction != null) { transaction.commit(media); Console.WriteLine(media.toString()); } } finally { // logout at last session.logout(); } } catch (PayException x) { // catch all PayExceptions and write to console Console.WriteLine(x.toString()); } }
public override Transaction Refund(PaySession session, ITransactionContext context, ref Transaction charge, Amount? amount = default(Amount?), string description = null, object extraData = null) { return Refund((BraintreeSession)session, context, ref charge, amount, description, extraData); }