Pay Pal IPN
admin
Merry Christmas and Ho Ho Ho. I'm giving away my paypal IPN module for free for all of you. It has everything you need to set up a paypal instant payment notification. You'll need to modifiy the emails and there are sections noted for additional expansion. MS-SQL included also. No notes or docs, but out of the pipe this will handle INP transactions on your ColdFusion server.
<cftry>
<!-- read post from PayPal system and add 'cmd' -->
<CFSET str="cmd=_notify-validate">
<CFLOOP INDEX="TheField" list="#Form.FieldNames#">
<CFSET str = str & "&#LCase(TheField)#=#URLEncodedFormat(FormTheField)#">
</CFLOOP>
<CFIF IsDefined("FORM.payment_date")>
<CFSET str = str & "&payment_date=#URLEncodedFormat(Form.payment_date)#">
</CFIF>
<CFIF IsDefined("FORM.subscr_date")>
<CFSET str = str & "&subscr_date=#URLEncodedFormat(Form.subscr_date)#">
</CFIF>
<CFIF IsDefined("FORM.auction_closing_date")>
<CFSET str = str & "&subscr_date=#URLEncodedFormat(Form.auction_closing_date)#">
</CFIF>
<!-- post back to PayPal system to validate -->
<CFHTTP URL="https://www.paypal.com/cgi-bin/webscr?#str#" METHOD="GET" RESOLVEURL="false">
</CFHTTP>
<!--- <CFHTTP URL="http://www.eliteweaver.co.uk/testing/ipntest.php?#str#" METHOD="GET" RESOLVEURL="false">
</CFHTTP> --->
<!--- <CFHTTP URL="http://www.belahost.com/pp/?#str#" METHOD="GET" RESOLVEURL="false">
</CFHTTP>--->
<!-- assign posted variables to local variables -->
<!-- check notification validation -->
<!--- Default all known IPN v1.6 variables --->
<cfparam name="form.business" default="none">
<cfparam name="form.receiver_email" default="none">
<cfparam name="form.receiver_id" default="none">
<cfparam name="form.item_name" default="none">
<cfparam name="form.item_number" default="none">
<cfparam name="form.invoice" default="none">
<cfparam name="form.custom" default="none">
<cfparam name="form.option_name1" default="none">
<cfparam name="form.option_selection1" default="none">
<cfparam name="form.option_name2" default="none">
<cfparam name="form.option_selection2" default="none">
<cfparam name="form.payment_status" default="none">
<cfparam name="form.pending_reason" default="none">
<cfparam name="form.reason_code" default="none">
<cfparam name="form.payment_date" default="none">
<cfparam name="form.txn_id" default="none">
<cfparam name="form.parent_txn_id" default="none">
<cfparam name="form.txn_type" default="none">
<cfparam name="form.mc_gross" default="none">
<cfparam name="form.mc_fee" default="none">
<cfparam name="form.mc_currency" default="none">
<cfparam name="form.settle_amount" default="none">
<cfparam name="form.settle_currency" default="none">
<cfparam name="form.exchange_rate" default="none">
<cfparam name="form.payment_gross" default="none">
<cfparam name="form.payment_fee" default="none">
<cfparam name="form.first_name" default="none">
<cfparam name="form.last_name" default="none">
<cfparam name="form.payer_business_name" default="none">
<cfparam name="form.address_name" default="none">
<cfparam name="form.address_street" default="none">
<cfparam name="form.address_city" default="none">
<cfparam name="form.address_state" default="none">
<cfparam name="form.address_zip" default="none">
<cfparam name="form.address_country" default="none">
<cfparam name="form.address_status" default="none">
<cfparam name="form.payer_email" default="none">
<cfparam name="form.payer_id" default="none">
<cfparam name="form.payer_status" default="none">
<cfparam name="form.payment_type" default="none">
<cfparam name="form.notify_version" default="none">
<cfparam name="form.verify_sign" default="none">
<cfparam name="form.subscr_date" default="none">
<cfparam name="form.subscr_effective" default="none">
<cfparam name="form.period1" default="none">
<cfparam name="form.period2" default="none">
<cfparam name="form.period3" default="none">
<cfparam name="form.amount1" default="none">
<cfparam name="form.amount2" default="none">
<cfparam name="form.amount3" default="none">
<cfparam name="form.mc_amount1" default="none">
<cfparam name="form.mc_amount2" default="none">
<cfparam name="form.mc_amount3" default="none">
<cfparam name="form.recurring" default="none">
<cfparam name="form.reattempt" default="none">
<cfparam name="form.retry_at" default="none">
<cfparam name="form.recur_times" default="none">
<cfparam name="form.username" default="none">
<cfparam name="form.password" default="none">
<cfparam name="form.subscr_id" default="">
<!--- check that payment_status=Completed --->
<!--- check that txn_id has not been previously processed --->
<!--- Begin TXN_ID check to eliminate duplicate records --->
<cfquery name="getIPNTXN" datasource="#application.dsn#">
SELECT IPN_id
FROM IPN_Notify
Where txn_id = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.txn_id#">
</cfquery>
<cfif getIPNTXN.RecordCount EQ 0>
<!--- check that receiver_email is your Primary PayPal email --->
<!--- check that payment_amount/payment_currency are correct --->
<!--- process payment --->
<cfsavecontent variable="PICKLES">
--------------------------------START----------------------------------
<cfoutput>#now()#</cfoutput><br>
<CFLOOP INDEX="TheField" list="#Form.FieldNames#">
<cfoutput>#LCase(TheField)#=#FormTheField#</cfoutput>
</CFLOOP>
---------------------------------END-----------------------------------<br>
</cfsavecontent>
<CFFILE action="APPEND" output="#PICKLES#" file="#application.web_directory#\paypal\IPN.TXT">
<cfset errorTry = "false">
<cftry>
<cfstoredproc procedure="sproc_addPaypalIPN" datasource="#application.dsn#">
<cfprocparam dbvarname="@business" cfsqltype="cf_sql_varchar" value="#form.business#">
<cfprocparam dbvarname="@receiver_email" cfsqltype="cf_sql_varchar" value="#form.receiver_email#">
<cfprocparam dbvarname="@receiver_id" cfsqltype="cf_sql_varchar" value="#form.receiver_id#">
<cfprocparam dbvarname="@item_name" cfsqltype="cf_sql_varchar" value="#form.item_name#">
<cfprocparam dbvarname="@item_number" cfsqltype="cf_sql_varchar" value="#form.item_number#">
<cfprocparam dbvarname="@invoice" cfsqltype="cf_sql_varchar" value="#form.invoice#">
<cfprocparam dbvarname="@custom" cfsqltype="cf_sql_varchar" value="#form.custom#">
<cfprocparam dbvarname="@option_name1" cfsqltype="cf_sql_varchar" value="#form.option_name1#">
<cfprocparam dbvarname="@option_selection1" cfsqltype="cf_sql_varchar" value="#form.option_selection1#">
<cfprocparam dbvarname="@option_name2" cfsqltype="cf_sql_varchar" value="#form.option_name2#">
<cfprocparam dbvarname="@option_selection2" cfsqltype="cf_sql_varchar" value="#form.option_selection2#">
<cfprocparam dbvarname="@payment_status" cfsqltype="cf_sql_varchar" value="#form.payment_status#">
<cfprocparam dbvarname="@pending_reason" cfsqltype="cf_sql_varchar" value="#form.pending_reason#">
<cfprocparam dbvarname="@reason_code" cfsqltype="cf_sql_varchar" value="#form.reason_code#">
<cfprocparam dbvarname="@payment_date" cfsqltype="cf_sql_timestamp" value="#dateformat(now(), 'mm/dd/yyyy')#">
<cfprocparam dbvarname="@txn_id" cfsqltype="cf_sql_varchar" value="#form.txn_id#">
<cfprocparam dbvarname="@parent_txn_id" cfsqltype="cf_sql_varchar" value="#form.parent_txn_id#">
<cfprocparam dbvarname="@txn_type" cfsqltype="cf_sql_varchar" value="#form.txn_type#">
<cfprocparam dbvarname="@mc_gross" cfsqltype="cf_sql_money" value="#form.mc_gross#">
<cfprocparam dbvarname="@mc_fee" cfsqltype="cf_sql_money" value="#form.mc_fee#">
<cfprocparam dbvarname="@mc_currency" cfsqltype="cf_sql_varchar" value="#form.mc_currency#">
<cfprocparam dbvarname="@settle_amount" cfsqltype="cf_sql_money" value="#form.settle_amount#">
<cfprocparam dbvarname="@settle_currency" cfsqltype="cf_sql_varchar" value="#form.settle_currency#">
<cfprocparam dbvarname="@exchange_rate" cfsqltype="cf_sql_varchar" value="#form.exchange_rate#">
<cfprocparam dbvarname="@payment_gross" cfsqltype="cf_sql_money" value="#form.payment_gross#">
<cfprocparam dbvarname="@payment_fee" cfsqltype="cf_sql_money" value="#form.payment_fee#">
<cfprocparam dbvarname="@first_name" cfsqltype="cf_sql_varchar" value="#form.first_name#">
<cfprocparam dbvarname="@last_name" cfsqltype="cf_sql_varchar" value="#form.last_name#">
<cfprocparam dbvarname="@payer_business_name" cfsqltype="cf_sql_varchar" value="#form.payer_business_name#">
<cfprocparam dbvarname="@address_name" cfsqltype="cf_sql_varchar" value="#form.address_name#">
<cfprocparam dbvarname="@address_street" cfsqltype="cf_sql_varchar" value="#form.address_street#">
<cfprocparam dbvarname="@address_city" cfsqltype="cf_sql_varchar" value="#form.address_city#">
<cfprocparam dbvarname="@address_state" cfsqltype="cf_sql_varchar" value="#form.address_state#">
<cfprocparam dbvarname="@address_zip" cfsqltype="cf_sql_varchar" value="#form.address_zip#">
<cfprocparam dbvarname="@address_country" cfsqltype="cf_sql_varchar" value="#form.address_country#">
<cfprocparam dbvarname="@address_status" cfsqltype="cf_sql_varchar" value="#form.address_status#">
<cfprocparam dbvarname="@payer_email" cfsqltype="cf_sql_varchar" value="#form.payer_email#">
<cfprocparam dbvarname="@payer_id" cfsqltype="cf_sql_varchar" value="#form.payer_id#">
<cfprocparam dbvarname="@payer_status" cfsqltype="cf_sql_varchar" value="#form.payer_status#">
<cfprocparam dbvarname="@payment_type" cfsqltype="cf_sql_varchar" value="#form.payment_type#">
<cfprocparam dbvarname="@notify_version" cfsqltype="cf_sql_varchar" value="#form.notify_version#">
<cfprocparam dbvarname="@verify_sign" cfsqltype="cf_sql_varchar" value="#form.verify_sign#">
<cfprocparam dbvarname="@subscr_date" cfsqltype="cf_sql_timestamp" value="#dateformat(now(), 'mm/dd/yyyy')#">
<cfprocparam dbvarname="@subscr_effective" cfsqltype="cf_sql_timestamp" value="#dateformat(now(), 'mm/dd/yyyy')#">
<cfprocparam dbvarname="@period1" cfsqltype="cf_sql_varchar" value="#form.period1#">
<cfprocparam dbvarname="@period2" cfsqltype="cf_sql_varchar" value="#form.period2#">
<cfprocparam dbvarname="@period3" cfsqltype="cf_sql_varchar" value="#form.period3#">
<cfprocparam dbvarname="@amount1" cfsqltype="cf_sql_money" value="#form.amount1#">
<cfprocparam dbvarname="@amount2" cfsqltype="cf_sql_money" value="#form.amount2#">
<cfprocparam dbvarname="@amount3" cfsqltype="cf_sql_money" value="#form.amount3#">
<cfprocparam dbvarname="@mc_amount1" cfsqltype="cf_sql_money" value="#form.mc_amount1#">
<cfprocparam dbvarname="@mc_amount2" cfsqltype="cf_sql_money" value="#form.mc_amount2#">
<cfprocparam dbvarname="@mc_amount3" cfsqltype="cf_sql_money" value="#form.mc_amount3#">
<cfprocparam dbvarname="@recurring" cfsqltype="cf_sql_bit" value="#form.recurring#">
<cfprocparam dbvarname="@reattempt" cfsqltype="cf_sql_varchar" value="#form.reattempt#">
<cfprocparam dbvarname="@retry_at" cfsqltype="cf_sql_time" value="#dateformat(now(), 'mm/dd/yyyy')#">
<cfprocparam dbvarname="@recur_times" cfsqltype="cf_sql_varchar" value="#form.recur_times#">
<cfprocparam dbvarname="@username" cfsqltype="cf_sql_varchar" value="#form.username#">
<cfprocparam dbvarname="@password" cfsqltype="cf_sql_varchar" value="#form.password#">
<cfprocparam cfsqltype="cf_sql_varchar" dbvarname="@subscr_id" value="#form.subscr_id#">
<cfprocparam dbvarname="@current_time" cfsqltype="cf_sql_timestamp" value="#createodbcdatetime(now())#">
</cfstoredproc>
<cfcatch type="database">
<cfmail server="#application.mail_server#" username="#application.main_user#" password="#application.main_pass#" type="html" to="chris@shareddynamics.com" from="#application.main_mail#" subject="Database error on IPN write." >
#CFCATCH.Type#<br /><br />
#CFCATCH.Message#<br /><br />
#CFCATCH.Detail#<br /><br />
#CFCATCH.NativeErrorCode#<br /><br />
#CFCATCH.SQLState#<br /><br />
<cfdump var="#CFCATCH.TagContext#"><br /><br />
#CFCATCH.ErrorCode#<br /><br />
#CFCATCH.ExtendedInfo#
</UL>
</cfmail>
</cfcatch>
</cftry>
<CFIF #CFHTTP.FileContent# is "VERIFIED">
<cfif urldecode(form.txn_type) EQ 'subscr_signup'>
<!--- This IPN is for a subscription sign-up --->
<cfelseif urldecode(form.txn_type) EQ 'subscr_cancel'>
<!--- This IPN is for a subscription cancellation --->
<cfelseif urldecode(form.txn_type) EQ 'subscr_modify'>
<!--- This IPN is for a subscription modification --->
<cfelseif urldecode(form.txn_type) EQ 'subscr_failed'>
<cfelseif urldecode(form.txn_type) EQ 'subscr_payment'>
<!--- This IPN is for a subscription payment --->
<cfelseif urldecode(form.txn_type) EQ 'subscr_eot'>
<!--- This IPN is for a subscription end of term --->
<cfelseif urldecode(form.txn_type) EQ 'cart'>
<!--- cart: Transaction created by a customer: Via the PayPal Shopping Cart feature or Via Express Checkout when the cart contains multiple items. --->
<cfelseif urldecode(form.txn_type) EQ 'express_checkout'>
<!--- express_checkout: Transaction created by Express Checkout when the customer's cart contains a single item. --->
<cfelseif urldecode(form.txn_type) EQ 'merch_pmt'>
<!--- merch_pmt: Website Payments Pro monthly billing fee. --->
<cfelseif urldecode(form.txn_type) EQ 'send-money'>
<!--- send-money: Transaction created by customer from the Send Money tab on the PayPal website. --->
<cfelseif urldecode(form.txn_type) EQ 'virtual_terminal'>
<!--- virtual_terminal: Transaction created with Virtual Terminal. --->
<cfelseif urldecode(form.txn_type) EQ 'web_accept'>
<!--- web_accept: Transaction created by customer via Buy Now, Donation, or Auction Smart Logos. --->
<cfquery name="getMember" datasource="#gDSN#">
Select *
FROM 200Members
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#FORM.ITEM_NUMBER#">
</cfquery>
<cfmail server="#application.mail_server#" username="#application.paypal_user#" password="#application.paypal_pass#" from="#application.paypal_mail#" to="#application.main_mail#" cc="#application.paypal_business#" bcc="chris@shareddynamics.com" subject="200 Club Donation was purchased from the Website!">
A item was purchased by: #FORM.first_name#' #FORM.last_name#
Item Purchased: #FORM.item_name#
200 Member Number: #FORM.ITEM_NUMBER#
Purchase Price: #DOLLARFORMAT(FORM.PAYMENT_GROSS)#
PayPal Fee: #DollarFORMAT(FORM.PAYMENT_FEE)#
==========================
Profit Fee: #DollarFormat(Evaluate("#FORM.PAYMENT_GROSS# - #FORM.PAYMENT_FEE#"))#
NAME: #getMember.FIRST# #getMember.MIDDLE# #getMember.LAST#
ADDR: #getMember.ADDRESS2# #getMember.APT#
CITY: #getMember.CITY#, #getMember.STATE# #getMember.ZIP#
HOME: #getMember.HOME_PHONE#
CELL: #getMember.CELL_PHONE#
EML.: #getMember.EMAIL#
PICK: #getMember.CHOICE1#
PICK: #getMember.CHOICE2#
PICK: #getMember.CHOICE3#
</cfmail>
<!--- This writes to a table and flags the paid flag true --->
<cfquery name="updateMember" datasource="#gDSN#">
UPDATE 200Members
SET PAID = <cfqueryparam cfsqltype="cf_sql_bit" value="1">,
PAID_DATE = <cfqueryparam cfsqltype="cf_sql_varchar" value="#DateFormat(Now(), 'mm/dd/yyyy')#">
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#FORM.ITEM_NUMBER#">
</cfquery>
</cfif>
<!--- send user an email --->
<cftry>
<cfmail server="#application.mail_server#" username="#application.paypal_user#" password="#application.paypal_pass#" from="#application.paypal_mail#" to="#application.main_mail#" subject="Art-iculate.org Purchase!">
Dear #FORM.first_name#' #FORM.last_name#,
Thank you for your recent purchase.
This email is to confirm that your credit card transaction is complete for:
Item Purchased: #FORM.item_name#
200 Member Number: #FORM.ITEM_NUMBER#
Purchase Price: #DOLLARFORMAT(FORM.PAYMENT_GROSS)#
Thank you for supporting the XXXXXXXXXXXXXXXXX
</cfmail>
<cfcatch>
</cfcatch>
</cftry>
<!--- End TXN_ID check to eliminate duplicate records --->
</cfif>
<CFELSEIF #CFHTTP.FileContent# is "INVALID">
<!-- log for investigation -->
<h1>ERROR: POST INVALID</h1>
<cfmail to="shareddynamics@comcast.net" server="#application.mail_server#" username="#application.paypal_user#" password="#application.paypal_pass#" from="#application.paypal_mail#" subject="fail IPN">
IPN Failed
#FORM.first_name#' #FORM.last_name#
Item Purchased: #FORM.item_name#
Artist_ID Number: #FORM.ITEM_NUMBER#
Purchase Price: #DOLLARFORMAT(FORM.PAYMENT_GROSS)#
PayPal Fee: #DollarFORMAT(FORM.PAYMENT_FEE)#
==========================
Profit Fee: #DollarFormat(Evaluate("#FORM.PAYMENT_GROSS# - #FORM.PAYMENT_FEE#"))#
Although the transaction has likely succeeded, this error is a general indication that the method that PayPal uses to verify an IPN transaction may have changed.
Contact XXXXXXXXXXXXXXX
1-866-XXX-XXXX
chris@shareddynamics.com
</cfmail>
<CFELSE>
<!-- error -->
<h1>ERROR: Undefined</h1>
<cfoutput>
#CFHTTP.FileContent#
</cfoutput>
</CFIF>
<cfcatch type="any">
<cfdump var="#cfcatch#">
</cfcatch>
</cftry>
Build the Table
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[IPN_Notify](
[IPN_id] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[business] [varchar](255) NULL,
[receiver_email] [varchar](255) NULL,
[receiver_id] [varchar](255) NULL,
[item_name] [varchar](255) NULL,
[item_number] [varchar](255) NULL,
[invoice] [varchar](255) NULL,
[custom] [varchar](255) NULL,
[option_name1] [varchar](255) NULL,
[option_selection1] [varchar](255) NULL,
[option_name2] [varchar](255) NULL,
[option_selection2] [varchar](255) NULL,
[payment_status] [varchar](255) NULL,
[pending_reason] [varchar](255) NULL,
[reason_code] [varchar](255) NULL,
[payment_date] [datetime] NULL,
[txn_id] [varchar](255) NULL,
[parent_txn_id] [varchar](255) NULL,
[txn_type] [varchar](255) NULL,
[mc_gross] [varchar](50) NULL,
[mc_fee] [varchar](50) NULL,
[mc_currency] [varchar](255) NULL,
[settle_amount] [varchar](50) NULL,
[settle_currency] [varchar](255) NULL,
[exchange_rate] [varchar](255) NULL,
[payment_gross] [varchar](50) NULL,
[payment_fee] [varchar](50) NULL,
[first_name] [varchar](255) NULL,
[last_name] [varchar](255) NULL,
[payer_business_name] [varchar](255) NULL,
[address_name] [varchar](255) NULL,
[address_street] [varchar](255) NULL,
[address_city] [varchar](255) NULL,
[address_state] [varchar](255) NULL,
[address_zip] [varchar](255) NULL,
[address_country] [varchar](55) NULL,
[address_status] [varchar](255) NULL,
[payer_email] [varchar](255) NULL,
[payer_id] [varchar](255) NULL,
[payer_status] [varchar](255) NULL,
[payment_type] [varchar](255) NULL,
[notify_version] [varchar](255) NULL,
[verify_sign] [varchar](255) NULL,
[subscr_date] [datetime] NULL,
[subscr_effective] [datetime] NULL,
[period1] [varchar](255) NULL,
[period2] [varchar](255) NULL,
[period3] [varchar](255) NULL,
[amount1] [varchar](50) NULL,
[amount2] [varchar](50) NULL,
[amount3] [varchar](50) NULL,
[mc_amount1] [varchar](50) NULL,
[mc_amount2] [varchar](50) NULL,
[mc_amount3] [varchar](50) NULL,
[recurring] [varchar](50) NULL,
[reattempt] [varchar](255) NULL,
[retry_at] [datetime] NULL,
[recur_times] [varchar](255) NULL,
[username] [varchar](255) NULL,
[password] [varchar](255) NULL,
[subscr_id] [varchar](255) NULL,
[current_time] [datetime] NOT NULL CONSTRAINT [DF_IPN_Notify_current_time] DEFAULT (getdate())
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
Create the Stored Procedure
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Christopher Walker, Shared Dynamics
-- Create date: February 12, 2007
-- Description: This is the entire PayPal IPN Database 1.6
-- =============================================
CREATE PROCEDURE [dbo].[sproc_addPaypalIPN]
-- Add the parameters for the stored procedure here
@business varchar(255),
@receiver_email varchar(255),
@receiver_id varchar(255),
@item_name varchar(255),
@item_number varchar(255),
@invoice varchar(255),
@custom varchar(255),
@option_name1 varchar(255),
@option_selection1 varchar(255),
@option_name2 varchar(255),
@option_selection2 varchar(255),
@payment_status varchar(255),
@pending_reason varchar(255),
@reason_code varchar(255),
@payment_date datetime,
@txn_id varchar(255),
@parent_txn_id varchar(255),
@txn_type varchar(255),
@mc_gross varchar(50),
@mc_fee varchar(50),
@mc_currency varchar(255),
@settle_amount varchar(50),
@settle_currency varchar(255),
@exchange_rate varchar(255),
@payment_gross varchar(50),
@payment_fee varchar(50),
@first_name varchar(255),
@last_name varchar(255),
@payer_business_name varchar(255),
@address_name varchar(255),
@address_street varchar(255),
@address_city varchar(255),
@address_state varchar(255),
@address_zip varchar(255),
@address_country varchar(55),
@address_status varchar(255),
@payer_email varchar(255),
@payer_id varchar(255),
@payer_status varchar(255),
@payment_type varchar(255),
@notify_version varchar(255),
@verify_sign varchar(255),
@subscr_date datetime,
@subscr_effective datetime,
@period1 varchar(255),
@period2 varchar(255),
@period3 varchar(255),
@amount1 varchar(50),
@amount2 varchar(50),
@amount3 varchar(50),
@mc_amount1 varchar(50),
@mc_amount2 varchar(50),
@mc_amount3 varchar(50),
@recurring varchar(50),
@reattempt varchar(255),
@retry_at datetime,
@recur_times varchar(255),
@username varchar(255),
@password varchar(255),
@subscr_id varchar(255),
@current datetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO [price-pro].[dbo].[IPN_Notify]
([business]
,[receiver_email]
,[receiver_id]
,[item_name]
,[item_number]
,[invoice]
,[custom]
,[option_name1]
,[option_selection1]
,[option_name2]
,[option_selection2]
,[payment_status]
,[pending_reason]
,[reason_code]
,[payment_date]
,[txn_id]
,[parent_txn_id]
,[txn_type]
,[mc_gross]
,[mc_fee]
,[mc_currency]
,[settle_amount]
,[settle_currency]
,[exchange_rate]
,[payment_gross]
,[payment_fee]
,[first_name]
,[last_name]
,[payer_business_name]
,[address_name]
,[address_street]
,[address_city]
,[address_state]
,[address_zip]
,[address_country]
,[address_status]
,[payer_email]
,[payer_id]
,[payer_status]
,[payment_type]
,[notify_version]
,[verify_sign]
,[subscr_date]
,[subscr_effective]
,[period1]
,[period2]
,[period3]
,[amount1]
,[amount2]
,[amount3]
,[mc_amount1]
,[mc_amount2]
,[mc_amount3]
,[recurring]
,[reattempt]
,[retry_at]
,[recur_times]
,[username]
,[password]
,[subscr_id]
,[current_time])
VALUES
( @business,
@receiver_email,
@receiver_id,
@item_name,
@item_number,
@invoice,
@custom,
@option_name1,
@option_selection1,
@option_name2,
@option_selection2,
@payment_status,
@pending_reason,
@reason_code,
@payment_date,
@txn_id,
@parent_txn_id,
@txn_type,
@mc_gross,
@mc_fee,
@mc_currency,
@settle_amount,
@settle_currency,
@exchange_rate,
@payment_gross,
@payment_fee,
@first_name,
@last_name,
@payer_business_name,
@address_name,
@address_street,
@address_city,
@address_state,
@address_zip,
@address_country,
@address_status,
@payer_email,
@payer_id,
@payer_status,
@payment_type,
@notify_version,
@verify_sign,
@subscr_date,
@subscr_effective,
@period1,
@period2,
@period3,
@amount1,
@amount2,
@amount3,
@mc_amount1,
@mc_amount2,
@mc_amount3,
@recurring,
@reattempt,
@retry_at,
@recur_times,
@username,
@password,
@subscr_id,
@current)
END
Enjoy! And credit me for my greatness.
Posted in CFWebstore Modifications in Action | SQL Server | PayPal |
2 comments
Nov 18, 2009 at 3:30 AM
Well this is very interesting indeed.Would love to read a little more of this. Great post. Thanks for the heads-up…This blog was very informative and knowledgeable
Feb 18, 2010 at 1:16 AM
Lots of different persons get know some techniques of free term papers accomplishing, nevertheless it does not mean they will create supreme quality term papers, however a <a href="http://quality-papers.com/topics/communication_and_media_essays">media essay</a> service should aid to compose the term paper titles of great quality and improve writing ability of some students.