<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by Jooeun Lee</title><link href="http://world.optimizely.com" /><updated>2015-10-27T19:33:33.0000000Z</updated><id>https://world.optimizely.com/blogs/jooeun-lee/</id> <generator uri="http://world.optimizely.com" version="2.0">Optimizely World</generator> <entry><title>AutoClose property for new EPiServer projects</title><link href="http://ejooeun.com/?p=87" /><id>&lt;p&gt;I got a question from a customer about the AutoClose property being true on their CMS database that is created whenever they create a new EPiServer project in Visual Studio. A quick Google search reveals why they brought the topic&amp;#8230; &lt;br /&gt;&lt;a class=&quot;read-more-button&quot; href=&quot;http://ejooeun.com/2015/10/27/autoclose-property-for-new-episerver-projects/&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com/2015/10/27/autoclose-property-for-new-episerver-projects/&quot;&gt;AutoClose property for new EPiServer projects&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com&quot;&gt;ejooeun.com&lt;/a&gt;.&lt;/p&gt;
</id><updated>2015-10-27T19:33:33.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>AutoClose property for new EPiServer projects</title><link href="https://ejooeun.com/?p=87" /><id>&lt;p&gt;I got a question from a customer about the AutoClose property being true on their CMS database that is created whenever they create a new EPiServer project in Visual Studio. A quick Google search reveals why they brought the topic&amp;#8230; &lt;br /&gt;&lt;a class=&quot;read-more-button&quot; href=&quot;https://ejooeun.com/2015/10/27/autoclose-property-for-new-episerver-projects/&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;https://ejooeun.com/2015/10/27/autoclose-property-for-new-episerver-projects/&quot;&gt;AutoClose property for new EPiServer projects&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;https://ejooeun.com&quot;&gt;ejooeun.com&lt;/a&gt;.&lt;/p&gt;
</id><updated>2015-10-27T19:33:33.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>The model item passed into the dictionary is of type ‘Castle.Proxies.MyVariationProxy’, but this dictionary requires a model item of type ‘EPiServerSite.Models.ViewModels.IPageViewModel`1 [EPiServerSite.Models.Pages.SitePageData]’</title><link href="http://ejooeun.com/?p=81" /><id>&lt;p&gt;Here is a quick &amp;#8220;gotcha&amp;#8221; that you might run into if you are adding EPiServer.Commerce to your CMS site: Server Error in &amp;#8216;/&amp;#8217; Application. The model item passed into the dictionary is of type &amp;#8216;Castle.Proxies.MyVariationProxy&amp;#8217;, but this dictionary requires a&amp;#8230; &lt;br /&gt;&lt;a class=&quot;read-more-button&quot; href=&quot;http://ejooeun.com/2015/09/25/the-model-item-passed-into-the-dictionary-is-of-type-castle-proxies-myvariationproxy-but-this-dictionary-requires-a-model-item-of-type-episerversite-models-viewmodels-ipageviewmodel1episerver/&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com/2015/09/25/the-model-item-passed-into-the-dictionary-is-of-type-castle-proxies-myvariationproxy-but-this-dictionary-requires-a-model-item-of-type-episerversite-models-viewmodels-ipageviewmodel1episerver/&quot;&gt;The model item passed into the dictionary is of type &amp;#8216;Castle.Proxies.MyVariationProxy&amp;#8217;, but this dictionary requires a model item of type &amp;#8216;EPiServerSite.Models.ViewModels.IPageViewModel`1[EPiServerSite.Models.Pages.SitePageData]&amp;#8217;&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com&quot;&gt;ejooeun.com&lt;/a&gt;.&lt;/p&gt;
</id><updated>2015-09-26T07:24:50.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Asset Importer fix for EPiServer Commerce 8 and CMS 8</title><link href="https://world.optimizely.com/blogs/jooeun-lee/dates/2015/9/asset-importer-fix-for-episerver-commerce-8-and-cms-8/" /><id>&lt;p&gt;I recently helped a customer resolve this issue and will share the solution. The customer was developing on the latest versions of CMS and Commerce (i.e. version 8.X.Y). Breaking changes from CMS 7.X to CMS 8 prevented the &lt;a href=&quot;/link/53298e30fbc24849a5720b1133a19563.aspx&quot; target=&quot;_blank&quot;&gt;Asset Importer&lt;/a&gt; from running in a set-up with Commerce &lt;em&gt;and &lt;/em&gt;CMS 8.X. &lt;/p&gt; &lt;p&gt;In order to fix this, do the following:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Update the Asset Importer project to match your Commerce site by installing NuGet packages.  &lt;li&gt;Get the fixes &lt;a href=&quot;https://gist.github.com/jooeun/b5d6cc680df7ed9961f6&quot;&gt;here&lt;/a&gt;.  &lt;li&gt;Run the tool &lt;a href=&quot;/link/53298e30fbc24849a5720b1133a19563.aspx&quot;&gt;as documented&lt;/a&gt;.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;If you are interested in reading the details of the problem and the fix, go &lt;a href=&quot;http://ejooeun.com/2015/08/29/asset-importer-fix-for-episerver-commerce-8-and-cms-8/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you need to solve this problem, I hope this helps. Please feel free to contact me with any questions/suggestions/bugs in EPiServer Expert Services by emailing me at jooeun.lee@episerver.com or by leaving a comment below.&lt;/p&gt;</id><updated>2015-09-09T02:59:54.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Asset Importer fix for EPiServer Commerce 8 and CMS 8</title><link href="http://ejooeun.com/?p=25" /><id>&lt;p&gt;First real blog post! As I noted in the previous post, these posts are part-information and part-discovery journal of a sort. This means that my posts&#160;can get pretty long (this one certainly is). Click on the TL;DR link in the&amp;#8230; &lt;br /&gt;&lt;a class=&quot;read-more-button&quot; href=&quot;http://ejooeun.com/2015/08/29/asset-importer-fix-for-episerver-commerce-8-and-cms-8/&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com/2015/08/29/asset-importer-fix-for-episerver-commerce-8-and-cms-8/&quot;&gt;Asset Importer fix for EPiServer Commerce 8 and CMS 8&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com&quot;&gt;ejooeun.com&lt;/a&gt;.&lt;/p&gt;
</id><updated>2015-08-29T10:03:55.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>EPiServer</title><link href="http://ejooeun.com/?p=16" /><id>&lt;p&gt;For one thing, I plan to start blogging about my own findings as I continue to work with the&#160;EPiServer&#160;product and find out more about the pitfalls, errors, and hopefully, victories I have been working at EPiServer&#160;since&#160;2012, following the acquisition of&#160;Mediachase.&amp;#8230; &lt;br /&gt;&lt;a class=&quot;read-more-button&quot; href=&quot;http://ejooeun.com/2015/08/22/episerver/&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com/2015/08/22/episerver/&quot;&gt;EPiServer&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com&quot;&gt;ejooeun.com&lt;/a&gt;.&lt;/p&gt;
</id><updated>2015-08-22T20:33:23.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Hello world!</title><link href="http://ejooeun.com/?p=1" /><id>&lt;p&gt;Hello world, indeed. I have finally decided to get serious about blogging, so here it is. Topics I will be blogging about: Learning Software Development Don&amp;#8217;t want to spend too long on a Hello World post! Here we go!&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com/2015/08/22/hello-world/&quot;&gt;Hello world!&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; href=&quot;http://ejooeun.com&quot;&gt;ejooeun.com&lt;/a&gt;.&lt;/p&gt;
</id><updated>2015-08-22T10:50:38.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Stripe Payment Provider for EPiServer Commerce</title><link href="https://world.optimizely.com/blogs/jooeun-lee/dates/2015/5/stripe-payment-provider-for-episerver-commerce/" /><id>&lt;h2&gt;Introduction/Motivation&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://stripe.com/&quot;&gt;&lt;span&gt;Stripe&lt;/span&gt;&lt;/a&gt; is a full-stack payment solution provider that is both user and developer-friendly. In this blog post, I will show how to implement a Stripe payment provider for EPiServer Commerce. You can &lt;a href=&quot;https://stripe.com/us/features&quot;&gt;&lt;span&gt;use Stripe&lt;/span&gt;&lt;/a&gt; to charge customer credit cards, set up recurring payments, store customer information, and much more with simple API calls (and great documentation to go with it) instead of implementing complicated payment gateway logic (take a look at EPiServer&amp;rsquo;s &lt;a href=&quot;/link/f15d5bf1928a41f8977dff4caaea7462.aspx&quot;&gt;&lt;span&gt;PayPal payment provider&lt;/span&gt;&lt;/a&gt; for comparison). It is also designed to reduce PCI-compliance exposure for your site with Stripe (more about that later if you are not already familiar with and &lt;a href=&quot;https://stripe.com/help/security&quot;&gt;&lt;span&gt;in Stripe documentation&lt;/span&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Stripe provides pre-built libraries in several languages, but unfortunately, as of this blog&amp;rsquo;s writing, an official .NET library does not exist. Having said that, there are a few C# libraries written by various people. For this example here, I used this &lt;a href=&quot;https://github.com/jaymedavis/stripe.net/&quot;&gt;&lt;span&gt;.NET library for Stripe&lt;/span&gt;&lt;/a&gt;, a well-written, free library that you can add to your solution as a NuGet package. It is, however, a few versions behind the API at the time of writing this blog. The good news is that there is ongoing work to keep up with the official API, so chances are that your download will be fully up-to-date and compatible with the latest and greatest from Stripe.&lt;/p&gt;
&lt;p&gt;The Stripe payment provider in this blog is to demonstrate how to implement a payment gateway for your EPiServer Commerce site to charge customer credit cards. As you will see, this is not a standard EPiServer Commerce payment provider. Unlike other payment providers that must implement that payment gateway logic directly, this Stripe payment gateway boils down to a service call to Stripe, with error-checking as needed. Your front-end implementation will pass the sensitive information to Stripe directly to request a token. You will then pass the token to your server for further processing, having ensured that your server does not ever get to see the aforementioned sensitive data.&lt;/p&gt;
&lt;p&gt;Refer to the following links to read more about how to build a &lt;a href=&quot;https://stripe.com/docs/tutorials/forms&quot;&gt;&lt;span&gt;custom form&lt;/span&gt;&lt;/a&gt; to collect credit card information from the user and then to receive a token from Stripe that is valid only for one request by using &lt;a href=&quot;https://stripe.com/docs/stripe.js&quot;&gt;&lt;span&gt;Stripe.js&lt;/span&gt;&lt;/a&gt;. This is the approach recommended by Stripe when not using their embedded form called &lt;a href=&quot;https://stripe.com/docs/checkout&quot;&gt;&lt;span&gt;Checkout&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Installation Instructions for Stripe and the Sample Implementation&lt;/h2&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;h3&gt;HTTPS, TLS (no SSL due to the &lt;a href=&quot;https://stripe.com/blog/poodle&quot;&gt;&lt;span&gt;POODLE&lt;/span&gt;&lt;/a&gt; vulnerability)&lt;/h3&gt;
&lt;p&gt;According to this &lt;a href=&quot;https://stripe.com/help/ssl#does-stripe-use-ssl-in-the-api&quot;&gt;&lt;span&gt;page&lt;/span&gt;&lt;/a&gt;, Stripe is served only over TLS. You can test your page &lt;a href=&quot;https://stripe.com/help/ssl#what-if-i-dont-want-to-set-up-ssl-yet&quot;&gt;&lt;span&gt;without encryption&lt;/span&gt;&lt;/a&gt;, but you will eventually need to set up TLS when you want to go live.&lt;/p&gt;
&lt;p&gt;Add the &lt;a href=&quot;https://www.nuget.org/packages/Stripe.net/&quot;&gt;&lt;span&gt;Stripe.net&lt;/span&gt;&lt;/a&gt; library via NuGet to your project.&lt;/p&gt;
&lt;h2&gt;Stripe Set-up&lt;/h2&gt;
&lt;p&gt;Set up a free account with Stripe &lt;a href=&quot;https://dashboard.stripe.com/register&quot;&gt;&lt;span&gt;here&lt;/span&gt;&lt;/a&gt;. Your account will remain in test mode until you are ready to &lt;a href=&quot;https://stripe.com/docs/tutorials/dashboard#activating-your-account&quot;&gt;&lt;span&gt;activate your account&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Setting Up the Sample Implementation&lt;/h2&gt;
&lt;p&gt;You can find a bare-bones, sample site with the Stripe payment provider &lt;a href=&quot;https://bitbucket.org/episerver-es/stripe-payment-provider&quot;&gt;here&lt;/a&gt;. Here are the steps to set up the solution so that you can test the payment provider.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open the solution and build the solution to restore NuGet packages.&lt;/li&gt;
&lt;li&gt;In a command prompt, run &lt;strong&gt;msbuild.exe solution.targets /t:Setup&lt;/strong&gt;. This sets up the databases for your front-end and Commerce Manager sites.&lt;/li&gt;
&lt;li&gt;Create two IIS sites to point to the &lt;strong&gt;SampleSite &lt;/strong&gt;and &lt;strong&gt;CommerceManager &lt;/strong&gt;projects in the solution.&lt;/li&gt;
&lt;li&gt;Import the test catalog. In Commerce Manager:&lt;/li&gt;
&lt;li&gt;Browse &lt;strong&gt;Catalog Management.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click on&lt;strong&gt; Catalogs.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Import/Export &lt;/strong&gt;and select &lt;strong&gt;Import Catalog&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the row with the test catalog.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Start Import&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Follow the next sections to set up a payment method for Stripe.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Frontend site&lt;/h2&gt;
&lt;p&gt;Add references to provider project and Stripe.Net NuGet package to your frontend site project.&lt;/p&gt;
&lt;h2&gt;Commerce Manager&lt;/h2&gt;
&lt;p&gt;Follow steps 1 through 5 under the &amp;ldquo;Creating a custom payment gateway&amp;rdquo; section &lt;a href=&quot;/link/1497e13f805f4f2295f9688fa3068d29.aspx&quot;&gt;&lt;span&gt;here&lt;/span&gt;&lt;/a&gt; to add the gateway to your Commerce Manager so that you can configure it. Alternatively, if you have a project for your Commerce Manager, you can directly add references to example payment provider project and Stripe.Net NuGet package to your project.&lt;/p&gt;
&lt;p&gt;Get API keys for your &lt;a href=&quot;https://dashboard.stripe.com/account/apikeys&quot;&gt;&lt;span&gt;Stripe account&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Create a new payment method for the Stripe payment gateway in Commerce Manager by following steps 6 through 11 from the above link. Use &amp;ldquo;Stripe&amp;rdquo; as the System Keyword if you are following along the sample implementation. Step 10 is where you will save your API keys.&lt;/p&gt;
&lt;p&gt;Make a meta class for the payment method (import the attached MetaData export) by following these steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Order System/Meta Class&lt;/strong&gt; node in the &lt;strong&gt;Administration&lt;/strong&gt; section of Commerce Manager.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Create New &lt;/strong&gt;at the top of the page and select &lt;strong&gt;New Meta Class&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter the following in corresponding fields:&lt;/li&gt;
&lt;li&gt;Name: StripePayment&lt;/li&gt;
&lt;li&gt;Friendly Name: Stripe Payment&lt;/li&gt;
&lt;li&gt;Object Type: Select &lt;strong&gt;Order Form Payment&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Meta Fields &lt;/strong&gt;in the Left Menu under &lt;strong&gt;Administration / Order System&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;New Meta Field&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter the following in corresponding fields:&lt;/li&gt;
&lt;li&gt;Name: StripeToken&lt;/li&gt;
&lt;li&gt;Friendly Name: Stripe Token&lt;/li&gt;
&lt;li&gt;Type: Select &lt;strong&gt;Short String&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;Allow Null Values&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Repeat step 7 for &amp;ldquo;StripeChargeId&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Navigate back to &lt;strong&gt;Meta Classes &lt;/strong&gt;in the Left Menu under &lt;strong&gt;Administration / Order System&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Assign the newly created meta fields to the Stripe Payment meta class:&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;Element:&lt;/strong&gt; select &lt;strong&gt;Order Form Payment&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;For&lt;strong&gt; Type: &lt;/strong&gt;select&lt;strong&gt; Stripe Payment&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Scroll down to the bottom of the screen and check the box for &lt;strong&gt;Stripe Token&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The form will scroll to the top. Scroll back down to the bottom of the screen and click &lt;strong&gt;OK.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Repeat steps a through d for &lt;strong&gt;Stripe Charge ID.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Testing the Sample Implementation&lt;/h2&gt;
&lt;p&gt;Now that you are set up, pay for a new order with Stripe by following the steps below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browse to your front-end site. If a screen about migration comes up, click the link to start the migration process.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Shopping&lt;/strong&gt; in the top bar area.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;test-node&lt;/strong&gt;, then &lt;strong&gt;test-sku&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Buy&lt;/strong&gt;. You will be redirected to the cart page.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Checkout &lt;/strong&gt;in the top bar.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Single Shipment Checkout&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add Shipment&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add Payment (Stripe payment provider)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Submit Payment to Stripe&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Fill out the required fields (more information &lt;a href=&quot;https://stripe.com/docs/testing#cards&quot;&gt;here&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Card Number: &lt;strong&gt;4242424242424242.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Cvc: 123 (or any 3-digit number).&lt;/li&gt;
&lt;li&gt;Expiry Month and Year: Any future date.&lt;/li&gt;
&lt;li&gt;Other fields are optional for this demo.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Submit Stripe payment&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Complete Order&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Note the purchase order tracking number.&lt;/li&gt;
&lt;li&gt;In Commerce Manager, browse to &lt;strong&gt;Order Management / Purchase Orders / Today &lt;/strong&gt;to confirm that the purchase order with the tracking number from the previous step has been successfully created.&lt;/li&gt;
&lt;li&gt;In your Stripe account &lt;a href=&quot;https://dashboard.stripe.com/test/dashboard&quot;&gt;dashboard&lt;/a&gt;, you can also check that the charge with the correct amount has been made.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Implementation Recommendations&lt;/h2&gt;
&lt;p&gt;My particular implementation necessitated that I save the Stripe token in the database before making a charge. However, depending on your site implementation, you may not need to do this. The only requirement for using the gateway is to make sure StripePayment.Token is populated when you are ready to complete an order.&lt;/p&gt;
&lt;p&gt;Examine the ProcessPayments activity to make sure that the code will eventually hit the gateway. You can download the workflow activities code from &lt;a href=&quot;/link/6d03901bee9f46e4b065b6a34501d574.aspx&quot;&gt;&lt;span&gt;here&lt;/span&gt;&lt;/a&gt;. The main thing here is that payment status is &amp;ldquo;Pending&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Earlier in the post, I briefly mentioned that using Stripe helps reduce PCI-compliance exposure. You can have a look &lt;a href=&quot;https://cmatskas.com/processing-payments-and-being-pci-compliant-with-stripe-js/&quot;&gt;&lt;span&gt;here&lt;/span&gt;&lt;/a&gt; for a clear, concise, and generic example on how to make a Stripe charge using Stripe.js in a .NET project. The important thing here is that you do not submit sensitive information (credit card numbers, expiration dates, etc.) to your server. The example here achieves this by the following steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leave inputs for sensitive information out of the submitted form altogether.&lt;/li&gt;
&lt;li&gt;Use &lt;a href=&quot;https://stripe.com/docs/stripe.js&quot;&gt;Stripe.js&lt;/a&gt; to make a call to Stripe API and retrieve a one-time token.&lt;/li&gt;
&lt;li&gt;Submit the form with the card amount. All other fields are optional.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By doing this, you keep the sensitive information from reaching your server. One thing to remember is that using Stripe reduces your PCI-compliance exposure &amp;ndash; it does NOT absolve you of PCI-compliance completely.&lt;/p&gt;
&lt;p&gt;After you post the form to the server, you can attach the token to a StripePayment object, add it to the cart, and run the checkout workflow to process the payment (i.e. make a charge) through the Stripe payment gateway.&lt;/p&gt;
&lt;h2&gt;Further considerations&lt;/h2&gt;
&lt;p&gt;If you have payment plans, you might want to consider implementing subscriptions for Stripe in addition to making it work with what is already in Commerce Manager. This way, you will be able to track your transactions on Stripe&amp;rsquo;s interface as well.&lt;/p&gt;
&lt;h2&gt;Disclaimer/Limitations&lt;/h2&gt;
&lt;p&gt;This is only an example implementation and is offered as is. This is not a supported payment provider by EPiServer and merely a demonstration project&lt;/p&gt;
&lt;p&gt;This project only supports making one-time charges of transaction type Mediachase.Commerce.Orders.TransactionType.Sale.&lt;/p&gt;
&lt;p&gt;If you need to solve this problem, I hope this helps. Please feel free to contact me with any questions/suggestions/bugs in EPiServer Expert Services at Jooeun dot&amp;nbsp;Lee at&amp;nbsp;episerver.com.&lt;/p&gt;
&lt;h2&gt;Useful Links&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://bitbucket.org/episerver-es/stripe-payment-provider&quot;&gt;https://bitbucket.org/episerver-es/stripe-payment-provider&lt;/a&gt; - Source of sample implementation on Expert Services Bitbucket account.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stripe.com/docs&quot;&gt;&lt;span&gt;https://stripe.com/docs&lt;/span&gt;&lt;/a&gt; - Stripe documentation. It is a great place to start learning about Stripe.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/link/1497e13f805f4f2295f9688fa3068d29.aspx&quot;&gt;&lt;span&gt;http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Commerce/8/Payments/Payment-gateways/&lt;/span&gt;&lt;/a&gt; - EPiServer&amp;rsquo;s guide to implementing your own payment gateways.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/jaymedavis/stripe.net&quot;&gt;&lt;span&gt;https://github.com/jaymedavis/stripe.net&lt;/span&gt;&lt;/a&gt; &amp;ndash; GitHub repository of the Stripe.Net library used in this project. This library is very helpful in extracting away most of the complexities with working with Stripe in a .NET project.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cmatskas.com/processing-payments-and-being-pci-compliant-with-stripe-js/&quot;&gt;&lt;span&gt;https://cmatskas.com/processing-payments-and-being-pci-compliant-with-stripe-js/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</id><updated>2015-05-14T02:55:07.4870000Z</updated><summary type="html">Blog post</summary></entry></feed>