找不到PDTHolder [英] PDTHolder couldnot be found
本文介绍了找不到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屋!
查看全文