-
Notifications
You must be signed in to change notification settings - Fork 73
/
BraintreeGateway.cs
139 lines (123 loc) · 4.33 KB
/
BraintreeGateway.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#pragma warning disable 1591
using System;
using System.Collections.Generic;
using System.Text;
namespace Braintree
{
/// <summary>
/// This is the primary interface to the Braintree Gateway.
/// </summary>
/// <remarks>
/// This class interact with:
/// <ul>
/// <li><see cref="AddressGateway">Addresses</see></li>
/// <li><see cref="CreditCardGateway">CreditCards</see></li>
/// <li><see cref="CustomerGateway">Customers</see></li>
/// <li><see cref="SubscriptionGateway">Subscriptions</see></li>
/// <li><see cref="TransactionGateway">Transactions</see></li>
/// </ul>
/// </remarks>
/// <example>
/// Quick Start Example:
/// <code>
/// using System;
/// using Braintree;
///
/// namespace BraintreeExample
/// {
/// class Program
/// {
/// static void Main(string[] args)
/// {
/// var gateway = new BraintreeGateway
/// {
/// Environment = Braintree.Environment.SANDBOX,
/// MerchantId = "the_merchant_id",
/// PublicKey = "a_public_key",
/// PrivateKey = "a_private_key"
/// };
///
/// var request = new TransactionRequest
/// {
/// Amount = 100.00M,
/// CreditCard = new CreditCardRequest
/// {
/// Number = "5105105105105100",
/// ExpirationDate = "05/12"
/// }
/// };
///
/// Transaction transaction = gateway.Transaction.Sale(request).Target;
///
/// Console.WriteLine(String.Format("Transaction ID: {0}", transaction.Id));
/// Console.WriteLine(String.Format("Status: {0}", transaction.Status));
/// }
/// }
/// }
/// </code>
/// </example>
public class BraintreeGateway
{
public Environment Environment
{
get { return Configuration.Environment; }
set { Configuration.Environment = value; }
}
public String MerchantId
{
get { return Configuration.MerchantId; }
set { Configuration.MerchantId = value; }
}
public String PublicKey
{
get { return Configuration.PublicKey; }
set { Configuration.PublicKey = value; }
}
public String PrivateKey
{
get { return Configuration.PrivateKey; }
set { Configuration.PrivateKey = value; }
}
public Configuration Configuration { get; set; }
public BraintreeGateway()
{
Configuration = new Configuration();
}
public BraintreeGateway(Environment environment, string merchantId, string publicKey, string privateKey)
{
Configuration = new Configuration(environment, merchantId, publicKey, privateKey);
}
public virtual CustomerGateway Customer
{
get { return new CustomerGateway(new BraintreeService(this.Configuration)); }
}
public virtual AddressGateway Address
{
get { return new AddressGateway(new BraintreeService(Configuration)); }
}
public virtual CreditCardGateway CreditCard
{
get { return new CreditCardGateway(new BraintreeService(Configuration)); }
}
public virtual SettlementBatchSummaryGateway SettlementBatchSummary
{
get { return new SettlementBatchSummaryGateway(new BraintreeService(Configuration)); }
}
public virtual SubscriptionGateway Subscription
{
get { return new SubscriptionGateway(new BraintreeService(Configuration)); }
}
public virtual TransactionGateway Transaction
{
get { return new TransactionGateway(new BraintreeService(Configuration)); }
}
public virtual TransparentRedirectGateway TransparentRedirect
{
get { return new TransparentRedirectGateway(new BraintreeService(Configuration)); }
}
public virtual String TrData(Request trData, String redirectURL)
{
return TrUtil.BuildTrData(trData, redirectURL, new BraintreeService(Configuration));
}
}
}