

<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.developerforce.com/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>developer.force.com - New pages [en]</title>
		<link>http://wiki.developerforce.com/index.php/Special:NewPages</link>
		<description>From developer.force.com</description>
		<language>en</language>
		<generator>MediaWiki 1.15.0</generator>
		<lastBuildDate>Fri, 30 Jul 2010 12:01:30 GMT</lastBuildDate>
		<item>
			<title>Tech Talk: Force.com Labs</title>
			<link>http://wiki.developerforce.com/index.php/Tech_Talk:_Force.com_Labs</link>
			<description>&lt;p&gt;Jon Mountjoy (memestorm):&amp;#32;/* Force.com Labs and Chatter Labs Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
=Force.com Labs and Chatter Labs Update=&lt;br /&gt;
&lt;br /&gt;
In this webinar, we look at recent developments at Force.com Labs as well as with Chatter Labs.  The webinar takes a deep dive into three apps: [http://sites.force.com/appexchange/listingDetail?listingId=a0N30000003HmJoEAK Collaborative Feedback], [http://sites.force.com/appexchange/listingDetail?listingId=a0N30000003HcINEA0 Action Plans] and [http://sites.force.com/appexchange/listingDetail?listingId=a0N30000003GJFrEAO Chatter News Alerts].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;G6z5O4HGwfY&amp;lt;/youtube&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Learn More'''&amp;lt;br /&amp;gt;&lt;br /&gt;
* If you have any questions, please post on the [http://community.salesforce.com/t5/Force-com-Labs-Development-and/bd-p/labs Force.com Labs Project discussion board.].  &lt;br /&gt;
* Visit [http://developer.force.com/content the Developer Force content page] to find other Tech Talks and content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Presenters'''&amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Sara Bright Varni''' - [http://sites.force.com/appexchange/home AppExchange] Marketing Manager &amp;lt;br /&amp;gt;&lt;br /&gt;
* '''Reid Carlberg''' - [http://sites.force.com/appexchange/results?type=Apps&amp;amp;keywords=force.com%20labs Force.com Labs] Apps Evangelist&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Date''': This webinar took place on July 13, 2010&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</description>
			<pubDate>Thu, 22 Jul 2010 21:17:13 GMT</pubDate>			<dc:creator>Reid Carlberg</dc:creator>			<comments>http://wiki.developerforce.com/index.php/Talk:Tech_Talk:_Force.com_Labs</comments>		</item>
		<item>
			<title>PHP Toolkit 13.1 Upsert Patch</title>
			<link>http://wiki.developerforce.com/index.php/PHP_Toolkit_13.1_Upsert_Patch</link>
			<description>&lt;p&gt;Brad Erickson (Brad Erickson):&amp;#32;PHP Toolkit 13.1 patch to fix SforceEnterpriseClient-&amp;gt;upsert()&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHP Toolkit 13.1 has a broken implementation of upsert() in SforceEnterpriseClient. The object type is hard coded as 'Contact', and there is no way to specify a different object type. Apply the following patch to fix:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- phptoolkit-13_1/soapclient/SforceEnterpriseClient.php	2009-09-04 14:38:00.000000000 -0400&lt;br /&gt;
+++ phptoolkit-13_1/soapclient/SforceEnterpriseClient.php.new	2010-07-14 00:54:46.000000000 -0400&lt;br /&gt;
@@ -83,11 +83,11 @@ class SforceEnterpriseClient extends Sfo&lt;br /&gt;
    * @param array  $sObjects  Array of sObjects&lt;br /&gt;
    * @return UpsertResult&lt;br /&gt;
    */&lt;br /&gt;
-  public function upsert($ext_Id, $sObjects) {&lt;br /&gt;
+  public function upsert($ext_Id, $sObjects, $type) {&lt;br /&gt;
     $arg = new stdClass;&lt;br /&gt;
     $arg-&amp;gt;externalIDFieldName = new SoapVar($ext_Id, XSD_STRING, 'string', 'http://www.w3.org/2001/XMLSchema');&lt;br /&gt;
     foreach ($sObjects as &amp;amp;$sObject) {&lt;br /&gt;
-      $sObject = new SoapVar($sObject, SOAP_ENC_OBJECT, 'Contact', $this-&amp;gt;namespace);&lt;br /&gt;
+      $sObject = new SoapVar($sObject, SOAP_ENC_OBJECT, $type, $this-&amp;gt;namespace);&lt;br /&gt;
     }&lt;br /&gt;
     $arg-&amp;gt;sObjects = $sObjects;&lt;br /&gt;
     return parent::_upsert($arg);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As a previous wiki editor mentioned, it is not apparent where to submit a patch or report a bug. I decided to simply post a patch.&lt;/div&gt;</description>
			<pubDate>Wed, 14 Jul 2010 04:54:21 GMT</pubDate>			<dc:creator>Brad Erickson (Brad Erickson)</dc:creator>			<comments>http://wiki.developerforce.com/index.php/Talk:PHP_Toolkit_13.1_Upsert_Patch</comments>		</item>
		<item>
			<title>Apex Testing with RunAs</title>
			<link>http://wiki.developerforce.com/index.php/Apex_Testing_with_RunAs</link>
			<description>&lt;p&gt;Andrew Waite:&amp;#32;/* Testing with a Portal User */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why RunAs? ==&lt;br /&gt;
&lt;br /&gt;
There are many situations where code will behave conditionally to the in context running user. Probably the most obvious case is where you are using the UserInfo object to check what class of user is making the request. Is this an administrator? Is it a portal user? Is it the site user? etc.&lt;br /&gt;
&lt;br /&gt;
The less obvious cases include where results from queries are affected by application of the WITH SHARING keyword, perhaps you are using [http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_bulk_sharing_creating_with_apex.htm Apex Managed Sharing] to control access or you are checking object accessibility, i.e. &amp;quot;does this user have access to read account?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Anytime you switch behavior on any of these conditions you need a mechanism within testing to switch the context user to establish the expected runtime conditions to assert the behavior of your code. &lt;br /&gt;
&lt;br /&gt;
== Background on Apex Testing and Portals ==&lt;br /&gt;
&lt;br /&gt;
The general concepts of testing in Apex are described on [[How_to_Write_Good_Unit_Tests]] which includes a relevant reference to the [http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content%2Fapex_testing_tools_runas.htm|SkinName=webhelp documentation on System.RunAs(User u)]  but this doesn't include reference to some of the complexities around setting up to run as a portal user.&lt;br /&gt;
&lt;br /&gt;
If you aren't familiar with portal users, the Customer Portal section on [[Authenticating_Users_on_Force.com_Sites]] is a good primer.&lt;br /&gt;
&lt;br /&gt;
== Testing with a Portal User ==&lt;br /&gt;
&lt;br /&gt;
Some things to note about the portal and test sample below:&lt;br /&gt;
&lt;br /&gt;
* The organization (your Developer Edition environment, for example) in which this is run MUST have the requisite portal licenses&lt;br /&gt;
* The respective portal MUST be enabled in the organization before this test can pass.&lt;br /&gt;
* The user that creates the portal user MUST have a Role.&lt;br /&gt;
&lt;br /&gt;
These preconditions can cause issues for partners wishing to include portal-specific functionality in their applications. For now the guidance is to make your code execution, including tests conditional based on availability of the various elements that are made available under those conditions.&lt;br /&gt;
&lt;br /&gt;
The good news is you can, once the preconditions are met, author a test which creates a portal user which you can then use to run a test:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@IsTest&lt;br /&gt;
private class PortalRunAsTests {&lt;br /&gt;
&lt;br /&gt;
    enum PortalType { CSPLiteUser, PowerPartner, PowerCustomerSuccess, CustomerSuccess }&lt;br /&gt;
    &lt;br /&gt;
    static testmethod void usertest() {&lt;br /&gt;
        User pu = getPortalUser(PortalType.PowerPartner, null, true);&lt;br /&gt;
        System.assert([select isPortalEnabled &lt;br /&gt;
                         from user &lt;br /&gt;
                        where id = :pu.id].isPortalEnabled,&lt;br /&gt;
                      'User was not flagged as portal enabled.');       &lt;br /&gt;
        &lt;br /&gt;
        System.RunAs(pu) {&lt;br /&gt;
            System.assert([select isPortalEnabled &lt;br /&gt;
                             from user &lt;br /&gt;
                            where id = :UserInfo.getUserId()].isPortalEnabled, &lt;br /&gt;
                          'User wasnt portal enabled within the runas block. ');&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static User getPortalUser(PortalType portalType, User userWithRole, Boolean doInsert) {&lt;br /&gt;
    &lt;br /&gt;
        /* Make sure the running user has a role otherwise an exception &lt;br /&gt;
           will be thrown. */&lt;br /&gt;
        if(userWithRole == null) {   &lt;br /&gt;
            &lt;br /&gt;
            if(UserInfo.getUserRoleId() == null) {&lt;br /&gt;
&lt;br /&gt;
                UserRole r = new UserRole(name = 'TEST ROLE');&lt;br /&gt;
                Database.insert(r);&lt;br /&gt;
                &lt;br /&gt;
                userWithRole = new User(alias = 'hasrole', email='userwithrole@roletest1.com', userroleid = r.id,&lt;br /&gt;
                                    emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US', &lt;br /&gt;
                                    localesidkey='en_US', profileid = UserInfo.getProfileId(), &lt;br /&gt;
                                    timezonesidkey='America/Los_Angeles', username='userwithrole@testorg.com');&lt;br /&gt;
            } else {&lt;br /&gt;
                userWithRole = new User(Id = UserInfo.getUserId(), UserRoleId = UserInfo.getUserRoleId());&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            System.assert(userWithRole.userRoleId != null, &lt;br /&gt;
                          'This test requires the target org to have at least one UserRole created. Please create a user role in this organization and try again.');&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        Account a;&lt;br /&gt;
        Contact c;&lt;br /&gt;
        System.runAs(userWithRole) {&lt;br /&gt;
&lt;br /&gt;
            a = new Account(name = 'TEST ACCOUNT');&lt;br /&gt;
            Database.insert(a);&lt;br /&gt;
            &lt;br /&gt;
            c = new Contact(AccountId = a.id, lastname = 'lastname');&lt;br /&gt;
            Database.insert(c);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        /* Get any profile for the given type.*/&lt;br /&gt;
        Profile p = [select id &lt;br /&gt;
                      from profile &lt;br /&gt;
                     where usertype = :portalType.name() &lt;br /&gt;
                     limit 1];   &lt;br /&gt;
        &lt;br /&gt;
        String testemail = 'puser000@amamama.com';&lt;br /&gt;
        User pu = new User(profileId = p.id, username = testemail, email = testemail, &lt;br /&gt;
                           emailencodingkey = 'UTF-8', localesidkey = 'en_US', &lt;br /&gt;
                           languagelocalekey = 'en_US', timezonesidkey = 'America/Los_Angeles', &lt;br /&gt;
                           alias='cspu', lastname='lastname', contactId = c.id);&lt;br /&gt;
        &lt;br /&gt;
        if(doInsert) {&lt;br /&gt;
            Database.insert(pu);&lt;br /&gt;
        }&lt;br /&gt;
        return pu;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 10 Jul 2010 16:21:46 GMT</pubDate>			<dc:creator>Andrew Waite</dc:creator>			<comments>http://wiki.developerforce.com/index.php/Talk:Apex_Testing_with_RunAs</comments>		</item>
		<item>
			<title>Web2Lead with Force.com Sites</title>
			<link>http://wiki.developerforce.com/index.php/Web2Lead_with_Force.com_Sites</link>
			<description>&lt;p&gt;Bulent Cinarkaya:&amp;#32;Created page with ''''Problem''' ---- You created your Force.com Site and you want to create a &amp;quot;Contact Us&amp;quot; page to capture prospect information and create a lead record in salesforce.com.   '''Sol…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Problem'''&lt;br /&gt;
----&lt;br /&gt;
You created your Force.com Site and you want to create a &amp;quot;Contact Us&amp;quot; page to capture prospect information and create a lead record in salesforce.com. &lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
----&lt;br /&gt;
We will create two visualforce pages: one to capture the information from prospects and one to display the confirmation.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Save&amp;quot; action of a standard controller by default takes user to the standard detail page after saving the related record. However, standard detail pages can not be made public via Force.com Sites. In order to take users to a custom visualforce page after the save action we will create an extension for the standard controller.&lt;br /&gt;
 &lt;br /&gt;
This new extension controller (myWeb2LeaExtenstion) will create a new Lead record and redirect user to the &amp;quot;Tank You&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public class myWeb2LeadExtension {&lt;br /&gt;
&lt;br /&gt;
    private final Lead weblead;&lt;br /&gt;
&lt;br /&gt;
    public myWeb2LeadExtension(ApexPages.StandardController stdController) {&lt;br /&gt;
       weblead = (Lead)stdController.getRecord();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
     public PageReference saveLead() {&lt;br /&gt;
       try {&lt;br /&gt;
       insert(weblead);&lt;br /&gt;
       }&lt;br /&gt;
       catch(System.DMLException e) {&lt;br /&gt;
           ApexPages.addMessages(e);&lt;br /&gt;
           return null;&lt;br /&gt;
       }&lt;br /&gt;
       PageReference p = Page.ThankYou;&lt;br /&gt;
       p.setRedirect(true);&lt;br /&gt;
       return p;&lt;br /&gt;
     } &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create your &amp;quot;Thank You&amp;quot; page to inform the end user their information is saved to the system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;apex:page title=&amp;quot;Job Application&amp;quot; showHeader=&amp;quot;false&amp;quot; standardStylesheets=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;apex:composition template=&amp;quot;{!$Site.Template}&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;apex:define name=&amp;quot;body&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;br/&amp;gt;&lt;br /&gt;
        &amp;lt;br/&amp;gt;&lt;br /&gt;
        &amp;lt;center&amp;gt;&amp;lt;apex:outputText value=&amp;quot;Your information is saved. Thank you for your interest!&amp;quot;/&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
        &amp;lt;br/&amp;gt;&lt;br /&gt;
        &amp;lt;br/&amp;gt;&lt;br /&gt;
    &amp;lt;/apex:define&amp;gt; &lt;br /&gt;
  &amp;lt;/apex:composition&amp;gt;  &lt;br /&gt;
&amp;lt;/apex:page&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that your extension controller and your confirmation page is created, you are ready to create your &amp;quot;Contact Us&amp;quot; visualforce page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;apex:page standardController=&amp;quot;Lead&amp;quot; extensions=&amp;quot;myWeb2LeadExtension&amp;quot; title=&amp;quot;Contact Us&amp;quot; showHeader=&amp;quot;false&amp;quot; standardStylesheets=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;apex:composition template=&amp;quot;{!$Site.Template}&amp;quot;&amp;gt; &lt;br /&gt;
  &amp;lt;apex:define name=&amp;quot;body&amp;quot;&amp;gt; &lt;br /&gt;
   &amp;lt;apex:form &amp;gt;&lt;br /&gt;
    &amp;lt;apex:messages id=&amp;quot;error&amp;quot; styleClass=&amp;quot;errorMsg&amp;quot; layout=&amp;quot;table&amp;quot; style=&amp;quot;margin-top:1em;&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;apex:pageBlock title=&amp;quot;&amp;quot; mode=&amp;quot;edit&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;apex:pageBlockButtons &amp;gt;&lt;br /&gt;
           &amp;lt;apex:commandButton value=&amp;quot;Save&amp;quot; action=&amp;quot;{!saveLead}&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/apex:pageBlockButtons&amp;gt;&lt;br /&gt;
        &amp;lt;apex:pageBlockSection title=&amp;quot;Contact Us&amp;quot; collapsible=&amp;quot;false&amp;quot; columns=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.Salutation}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.Title}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.FirstName}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.LastName}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.Email}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.Phone}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.Company}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.Street}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.City}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.State}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.PostalCode}&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;apex:inputField value=&amp;quot;{!Lead.Country}&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/apex:pageBlockSection&amp;gt;&lt;br /&gt;
     &amp;lt;/apex:pageBlock&amp;gt;&lt;br /&gt;
   &amp;lt;/apex:form&amp;gt;&lt;br /&gt;
  &amp;lt;/apex:define&amp;gt; &lt;br /&gt;
 &amp;lt;/apex:composition&amp;gt;  &lt;br /&gt;
&amp;lt;/apex:page&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your web2Lead flow is ready to be exposed via your site to your prospects.&lt;br /&gt;
Navigate to your site details page and enable the two visualforce pages you just created&lt;br /&gt;
[[File:W2lead1.png]]&lt;br /&gt;
&lt;br /&gt;
Next, make sure your site has the correct Filed Level Visibility for the lead object. Navigate to the site details page and click the &amp;quot;Public Access Settings&amp;quot; button. Scroll down to the Field-Level Security section and click the &amp;quot;View&amp;quot; link. Review the fields that you expose on your contact us form and make sure they are set as visible.&lt;br /&gt;
&lt;br /&gt;
[[File:W2lead2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And finally, grant the Create permission to your site for the Lead object. Navigate to the site details page and click the &amp;quot;Public Access Settings&amp;quot; button then click the &amp;quot;Edit&amp;quot; button. Scroll down to the Standard Object Permissions section, check the Create permission for the Lead object and save your changes.&lt;br /&gt;
&lt;br /&gt;
[[File:EW2lead2.png]]&lt;br /&gt;
&lt;br /&gt;
Access your contact us page via your public site and test your new lead form.&lt;br /&gt;
&lt;br /&gt;
'''Discussion'''&lt;br /&gt;
----&lt;br /&gt;
You can easily create web forms by leveraging visualforce, standard controllers and Force.com Sites. Creating marketing landing pages with your own look and feel is just a couple steps away.&lt;/div&gt;</description>
			<pubDate>Wed, 30 Jun 2010 19:42:51 GMT</pubDate>			<dc:creator>Bulent Cinarkaya</dc:creator>			<comments>http://wiki.developerforce.com/index.php/Talk:Web2Lead_with_Force.com_Sites</comments>		</item>
		<item>
			<title>Tech Talk: PayPal Toolkit FAQ</title>
			<link>http://wiki.developerforce.com/index.php/Tech_Talk:_PayPal_Toolkit_FAQ</link>
			<description>&lt;p&gt;Bruno Lombardi (Bruno Lombardi):&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
&amp;lt;h1&amp;gt;Tech Talk: PayPal Toolkit FAQ&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the FAQ for the [[Tech_Talk:_PayPal_Toolkit|Tech Talk: PayPal Toolkit]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== How can I incorporate this into my .net/SQL applicaton so I can charge membership on my site with IPN? ==&lt;br /&gt;
There is a .Net SDK available on www.x.com, which you can use to incorporate payments into your application.&lt;br /&gt;
&lt;br /&gt;
== What versions will this work with?  PE, EE, UE? ==&lt;br /&gt;
EE and UE directly, PE indirectly via partner application.&lt;br /&gt;
&lt;br /&gt;
== Can you make bi-directional updates between force.com and Paypal? For example, I assume I have an application built on force.com which tracks payments. Say, I need to give credit back to a customer for $100 for example. Would I be able to give credit back starting from force.com to Paypal and back to customer? ==&lt;br /&gt;
Yes using the &amp;quot;refund&amp;quot; API. Although one thing to note is, since a refund moves the money out of a receiver's account, you would need to have delegated permission from the receiver. They can do so by going to their PayPal.com profile page, and click on API Access page to give you access to refund money on behalf of them.&lt;br /&gt;
&lt;br /&gt;
== Can you do PayPal IPN's with Force.com? ==&lt;br /&gt;
Not currently but it's definitely on the road map.&lt;br /&gt;
&lt;br /&gt;
== Is there anyway to use paypal x without directing user away from your site? ie, simply charge a credit card. ==&lt;br /&gt;
Not currently. Please be aware that collecting credit card or any payment information in your app would require you to be PCI Compliant. By redirecting the user to PayPal to enter their Payment info, your app doesn't need to be PCI Compliant (PayPal itself is PCI Compliant already).&lt;br /&gt;
&lt;br /&gt;
== How is the Force.com transaction to PayPal secured? ==&lt;br /&gt;
Mainly 2 ways - API Credentials to authenticate the requests and transport level security (SSL) to secure the transactions over the wire.&lt;br /&gt;
&lt;br /&gt;
== Does the Sender of funds HAVE to have a Paypal Account? Can they enter a Credit Card without having an PayPal Account? ==&lt;br /&gt;
See above on guest Payments.&lt;br /&gt;
&lt;br /&gt;
== Is there special pricing for users of Salesforce non profit edition? ==&lt;br /&gt;
No but non-profits in general receive special discounted pricing from PayPal. So please refer to paypal.com for information about how you can apply for non-profit discounted pricing.&lt;br /&gt;
&lt;br /&gt;
== Any plans to integrate Website Payments Pro into the toolkit? ==&lt;br /&gt;
Not currently.&lt;br /&gt;
&lt;br /&gt;
== When will the new PayPal X fees be available? ==&lt;br /&gt;
If you are talking about the new pricing announced here: https://www.paypal-media.com/releasedetail.cfm?ReleaseID=421888 -  there are no updates to share now, but stay tuned for more information.&lt;br /&gt;
&lt;br /&gt;
== How long before guest payments? ==&lt;br /&gt;
Cannot give you the exact date but it will be this month (June, 2010).&lt;/div&gt;</description>
			<pubDate>Thu, 24 Jun 2010 18:51:19 GMT</pubDate>			<dc:creator>Bruno Lombardi (Bruno Lombardi)</dc:creator>			<comments>http://wiki.developerforce.com/index.php/Talk:Tech_Talk:_PayPal_Toolkit_FAQ</comments>		</item>
	</channel>
</rss>