<commit_before>![Stripe.net](http://i.imgur.com/9UzKGQd.png)  
  
![Donate](https://pledgie.com/campaigns/22262.png)  
  
##**If you would like to submit a pull request.**
First, thank you! It is a lot of work to learn someone else's codebase, so I appreciate it. Here are a few things that would help me out:
* Do not submit pull requests for more than one fix. Keep them small and focused.
* Please code review yourself. There are a lot of pull requests with typos and mistakes. Don't worry, we all do it. But a code review of yourself will help. :)
* Please review the diff in GitHub that I will see before I merge your pull requests. If it's hard for you to tell what the differences are, it's going to be hard for me too.
* Please do not include files in your pull requests that are just white space changes.  

Quick Start
-----------

It is recommended that you install Stripe.net via NuGet. If you wish to build it yourself via build.cmd, you will need
ruby installed along with the gems albacore and zip.

Add a reference to Stripe.net.dll.

Next you will need to provide Stripe.net with your api key. There are 3 ways to do this: Choose one.

a) Add an AppSetting with your api key to your config (this is the easiest way)

	<appSettings>
	...
		<add key="StripeApiKey" value="[your api key here]" />
	...
	</appSettings>

b) In your application initialization, call (this is a programmatic way, but you only have to do it once during startup)

	StripeConfiguration.SetApiKey("[your api key here]");

c) In any of the service constructors documented below, you can optionally pass the api key (not recommended for single app/single key use). i.e...

	var planService = new StripePlanService("[your api key here]");

Use the library :)

Examples
========

Plans
-----

### Creating a plan

If your site has multiple offerings, plans are perfect. You can create as many plans as you want and then just assign customers to those plans later on.

	var myPlan = new StripePlanCreateOptions();
	myPlan.Amount = 1000;           // all amounts on Stripe are in cents, pence, etc
	myPlan.Currency = "usd";        // "usd" only supported right now
	myPlan.Interval = "month";      // "month" or "year"
	myPlan.IntervalCount = 1;       // optional
	myPlan.Name = "Bronze";
	myPlan.TrialPeriodDays = 30;    // amount of time that will lapse before the customer is billed

	var planService = new StripePlanService();
	StripePlan response = planService.Create(myPlan);

The returned StripePlan entity above will have a unique Id. You will want to persist this for later. When you create a customer you will be able to assign them
to a plan id (or not)

### Updating a plan
<commit_msg>added message about the current version of the api supported<commit_after>![Stripe.net](http://i.imgur.com/9UzKGQd.png)  
  
![Donate](https://pledgie.com/campaigns/22262.png)  
  
##**If you would like to submit a pull request.**
First, thank you! It is a lot of work to learn someone else's codebase, so I appreciate it. Here are a few things that would help me out:
* Do not submit pull requests for more than one fix. Keep them small and focused.
* Please code review yourself. There are a lot of pull requests with typos and mistakes. Don't worry, we all do it. But a code review of yourself will help. :)
* Please review the diff in GitHub that I will see before I merge your pull requests. If it's hard for you to tell what the differences are, it's going to be hard for me too.
* Please do not include files in your pull requests that are just white space changes.  

Quick Start
-----------

It is recommended that you install Stripe.net via NuGet. If you wish to build it yourself via build.cmd, you will need
ruby installed along with the gems albacore and zip.

Add a reference to Stripe.net.dll.

Next you will need to provide Stripe.net with your api key. There are 3 ways to do this: Choose one.

a) Add an AppSetting with your api key to your config (this is the easiest way)

	<appSettings>
	...
		<add key="StripeApiKey" value="[your api key here]" />
	...
	</appSettings>

b) In your application initialization, call (this is a programmatic way, but you only have to do it once during startup)

	StripeConfiguration.SetApiKey("[your api key here]");

c) In any of the service constructors documented below, you can optionally pass the api key (not recommended for single app/single key use). i.e...

	var planService = new StripePlanService("[your api key here]");

Stripe.net forces a version of the Stripe API for which it was designed. You can find out the latest version support by viewing StripeConfiguration.cs under the Infrastructure folder.

Examples
========

Plans
-----

### Creating a plan

If your site has multiple offerings, plans are perfect. You can create as many plans as you want and then just assign customers to those plans later on.

	var myPlan = new StripePlanCreateOptions();
	myPlan.Amount = 1000;           // all amounts on Stripe are in cents, pence, etc
	myPlan.Currency = "usd";        // "usd" only supported right now
	myPlan.Interval = "month";      // "month" or "year"
	myPlan.IntervalCount = 1;       // optional
	myPlan.Name = "Bronze";
	myPlan.TrialPeriodDays = 30;    // amount of time that will lapse before the customer is billed

	var planService = new StripePlanService();
	StripePlan response = planService.Create(myPlan);

The returned StripePlan entity above will have a unique Id. You will want to persist this for later. When you create a customer you will be able to assign them
to a plan id (or not)

### Updating a plan

{'fraction_non_alphanumeric': 0.08037316110513097, 'fraction_numerical': 0.005023322569070686, 'mean_word_length': 3.569672131147541, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '697929', 'n_tokens_mistral': 1622, 'n_tokens_neox': 1530, 'n_words': 828}