找不到PDTHolder [英] PDTHolder couldnot be found

查看:67
本文介绍了找不到PDTHolder的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最后我只有一个问题.
在paymeny之后从Paypal重定向到我的网站时.
当我将这些代码实现到我的项目中时,它在关键字上显示了一些错误:-
关键字:"PDTHolder pdt = PDTHolder.Parse(strResponse);"
错误:找不到类型或名称空间名称PHTHolder(您是否缺少指令或程序集引用)"

完整的代码是.....



Hi finally i have only one problem.
while redirecting from Paypal to my site after paymeny.
When i implement these code to my project it showing some error on the key word:-
Key Word: "PDTHolder pdt = PDTHolder.Parse(strResponse);"
Error :"The type or namespace name PHTHolder couldnt be found(are u missing a directive or an assembly reffernces)"

The complete code is.....



protected void Page_Load(object sender, EventArgs e)
{
            if (!Page.IsPostBack)
            {
                string authToken, txToken, query, strResponse;
                authToken = WebConfigurationManager.AppSettings["PDTToken"];
 
                //read in txn token from querystring
                txToken = Request.QueryString.Get("tx");
 

                query = string.Format("cmd=_notify-synch&tx={0}&at={1}",
                                      txToken, authToken);
 
                // Create the request back
                string url = WebConfigurationManager.AppSettings["PayPalSubmitUrl"];
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
 
                // Set values for the request back
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
                req.ContentLength = query.Length;
 
                // Write the request back IPN strings
                StreamWriter stOut = new StreamWriter(req.GetRequestStream(),
                                         System.Text.Encoding.ASCII);
                stOut.Write(query);
                stOut.Close();
 
                // Do the request to PayPal and get the response
                StreamReader stIn = new      StreamReader(req.GetResponse().GetResponseStream());
                strResponse = stIn.ReadToEnd();
                stIn.Close();
 
                // sanity check
                lblMsg.Text = strResponse;
 
                // If response was SUCCESS, parse response string and output details
                if (strResponse.StartsWith("SUCCESS"))
                {
                    PDTHolder pdt = PDTHolder.Parse(strResponse);
                    lblMsg.Text =
                        string.Format("Thank you {0} {1} [{2}] for your payment of {3} {4}!",
                        pdt.PayerFirstName, pdt.PayerLastName,
                        pdt.PayerEmail, pdt.GrossTotal, pdt.Currency);
                }
                else
                {
                    lblMsg.Text = "Oooops, something went wrong...";
                }
            }
        }




请帮我......




pls pls help me......

推荐答案

请点击该链接..
http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx

隐含此项目
我还必须更改我的global.asax以不使用后面的代码.外观:

void Profile_MigrateAnonymous(对象发送者,
ProfileMigrateEventArgs e)
{
ProfileCommononymousProfile =
Profile.GetProfile(e.AnonymousID);
如果(anonymousProfile!= null&&
AnonymousProfile.CurrentBasketInfo!= null)
{
Profile.CurrentBasketInfo =
onymousProfile.CurrentBasketInfo;
}
}
Please chekch this link..
http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx
or
Implimnet this items
I had also to change my global.asax to not use code behind. Look:

void Profile_MigrateAnonymous(object sender,
ProfileMigrateEventArgs e)
{
ProfileCommon anonymousProfile =
Profile.GetProfile(e.AnonymousID);
if (anonymousProfile != null &&
anonymousProfile.CurrentBasketInfo != null)
{
Profile.CurrentBasketInfo =
anonymousProfile.CurrentBasketInfo;
}
}


将此类复制并粘贴到您的app_code类模板中.

使用系统;
2使用System.Collections.Generic;
3使用System.Linq;
4使用System.Web;
5
6个命名空间LepiPele.PayPal.PDT
7 {
8个公共类PDTHolder
9 {
10公众双GrossTotal {get;放; }
11 public int InvoiceNumber {获取;放; }
12个公共字符串PaymentStatus {get;放; }
13公共字符串PayerFirstName {get;放; }
14个公共双倍的PaymentFee {获取;放; }
15个公共字符串BusinessEmail {get;放; }
16个公共字符串PayerEmail {get;放; }
17个公共字符串TxToken {get;放; }
18公共字符串PayerLastName {get;放; }
19个公共字符串ReceiverEmail {get;放; }
20个公共字符串ItemName {get;放; }
21个公共字符串Currency {get;放; }
22公共字符串TransactionId {放; }
23公共字符串SubscriberId {放; }
24个公共字符串Custom {get;放; }
25
26个公共静态PDTHolder解析(字符串postData)
27 {
28字符串sKey,sValue;
29 PDTHolder ph =新的PDTHolder();
30
31试试
32 {
33//使用空格分隔符将响应拆分为字符串数组
34 String [] StringArray = postData.Split(''\ n'');
35
36//注意:
37/*
38 *循环设置为从1开始而不是0,因为first
数组中的39个字符串将是单个单词SUCCESS或FAIL
40仅用于验证帖子数据
41 */
42
43//使用split来拆分数组我们已经使用"="作为定界符
44 int i;
45 for(i = 1; i< StringArray.Length-1; i ++)
46 {
47 String [] StringArray1 = StringArray [i] .Split(''='');
48
49 sKey = StringArray1 [0];
50 sValue = HttpUtility.UrlDecode(StringArray1 [1]);
51
52//使用开关设置字符串变量以保存变量名 53开关(sKey)
54 {
55个案例"mc_gross":
56 ph.GrossTotal = Convert.ToDouble(sValue);
57休息;
58
59个案例发票":
60 ph.InvoiceNumber = Convert.ToInt32(sValue);
61休息;
62
63个案例"payment_status":
64 ph.PaymentStatus = Convert.ToString(sValue);
65休息;
66
67例"first_name":
68 ph.PayerFirstName = Convert.ToString(sValue);
69休息;
70
71个案例"mc_fee":
72 ph.PaymentFee = Convert.ToDouble(sValue);
73休息;
74
75个案例企业":
76 ph.BusinessEmail = Convert.ToString(sValue);
77休息;
78
79个案例"payer_email":
80 ph.PayerEmail = Convert.ToString(sValue);
81休息;
82
83个案例"Tx令牌":
84 ph.TxToken = Convert.ToString(sValue);
85休息;
86
87种情况"last_name":
88 ph.PayerLastName = Convert.ToString(sValue);
89休息;
90
91个案例"receiver_email":
92 ph.ReceiverEmail = Convert.ToString(sValue);
93休息;
94
95种情况"item_name":
96 ph.ItemName = Convert.ToString(sValue);
97休息;
98
99个案例"mc_currency":
100 ph.Currency = Convert.ToString(sValue);
101休息;
102
103例"txn_id":
104 ph.TransactionId = Convert.ToString(sValue);
105休息;
106
107个案例"custom":
108 ph.Custom = Convert.ToString(sValue);
109休息;
110
111种情况"subscr_id":
112 ph.SubscriberId = Convert.ToString(sValue);
113休息;
114}
115}
116
117 return ph;
118}
119 catch(ex ex例外)
120 {
121 throw ex;
122}
123}
124}
125}
copy and paste this class in ur app_code class template.

using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5
6 namespace LepiPele.PayPal.PDT
7 {
8 public class PDTHolder
9 {
10 public double GrossTotal { get; set; }
11 public int InvoiceNumber { get; set; }
12 public string PaymentStatus { get; set; }
13 public string PayerFirstName { get; set; }
14 public double PaymentFee { get; set; }
15 public string BusinessEmail { get; set; }
16 public string PayerEmail { get; set; }
17 public string TxToken { get; set; }
18 public string PayerLastName { get; set; }
19 public string ReceiverEmail { get; set; }
20 public string ItemName { get; set; }
21 public string Currency { get; set; }
22 public string TransactionId { get; set; }
23 public string SubscriberId { get; set; }
24 public string Custom { get; set; }
25
26 public static PDTHolder Parse(string postData)
27 {
28 String sKey, sValue;
29 PDTHolder ph = new PDTHolder();
30
31 try
32 {
33 //split response into string array using whitespace delimeter
34 String[] StringArray = postData.Split(''\n'');
35
36 // NOTE:
37 /*
38 * loop is set to start at 1 rather than 0 because first
39 string in array will be single word SUCCESS or FAIL
40 Only used to verify post data
41 */
42
43 // use split to split array we already have using "=" as delimiter
44 int i;
45 for (i = 1; i < StringArray.Length - 1; i++)
46 {
47 String[] StringArray1 = StringArray[i].Split(''='');
48
49 sKey = StringArray1[0];
50 sValue = HttpUtility.UrlDecode(StringArray1[1]);
51
52 // set string vars to hold variable names using a switch
53 switch (sKey)
54 {
55 case "mc_gross":
56 ph.GrossTotal = Convert.ToDouble(sValue);
57 break;
58
59 case "invoice":
60 ph.InvoiceNumber = Convert.ToInt32(sValue);
61 break;
62
63 case "payment_status":
64 ph.PaymentStatus = Convert.ToString(sValue);
65 break;
66
67 case "first_name":
68 ph.PayerFirstName = Convert.ToString(sValue);
69 break;
70
71 case "mc_fee":
72 ph.PaymentFee = Convert.ToDouble(sValue);
73 break;
74
75 case "business":
76 ph.BusinessEmail = Convert.ToString(sValue);
77 break;
78
79 case "payer_email":
80 ph.PayerEmail = Convert.ToString(sValue);
81 break;
82
83 case "Tx Token":
84 ph.TxToken = Convert.ToString(sValue);
85 break;
86
87 case "last_name":
88 ph.PayerLastName = Convert.ToString(sValue);
89 break;
90
91 case "receiver_email":
92 ph.ReceiverEmail = Convert.ToString(sValue);
93 break;
94
95 case "item_name":
96 ph.ItemName = Convert.ToString(sValue);
97 break;
98
99 case "mc_currency":
100 ph.Currency = Convert.ToString(sValue);
101 break;
102
103 case "txn_id":
104 ph.TransactionId = Convert.ToString(sValue);
105 break;
106
107 case "custom":
108 ph.Custom = Convert.ToString(sValue);
109 break;
110
111 case "subscr_id":
112 ph.SubscriberId = Convert.ToString(sValue);
113 break;
114 }
115 }
116
117 return ph;
118 }
119 catch (Exception ex)
120 {
121 throw ex;
122 }
123 }
124 }
125 }


这篇关于找不到PDTHolder的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆