我使用PayPal在ASP.net,當我在沙盒測試的一切是正確的,但是當我使用我得到這個錯誤的帶電部件:活貝寶錯誤
This payment cannot be completed and your account has not been charged. Please contact your merchant for more information. We are not able to process your payment using your PayPal account at this time. Please return to the merchant's website and try using a different payment method (if available).
這是我的webconfig
<add key="token" value="*************************"/>
<add key="paypalemail" value="*************@gmail.com"/>
<add key="PayPalSubmitUrl" value="https://www.paypal.com/cgi-bin/webscr"/>
<add key="FailedURL" value="http://www.stockholmsbygg.net/Failed.aspx"/>
<add key="SuccessURL" value="http://www.stockholmsbygg.net/FindOpenRequests.aspx"/>
<add key="Notification" value="http://www.stockholmsbygg.net/Notification.aspx"/>
,並重定向到貝寶
public static string RedirectToPaypal(string invoiceNumber, string requestId, string userId, string customId, string itemName, string amount)
{
string redirecturl = "";
redirecturl += "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" + ConfigurationManager.AppSettings["paypalemail"].ToString();
redirecturl += "&first_name=" + userId;
redirecturl += "&item_name=" + itemName;
redirecturl += "&amount=5.00";
redirecturl += "&quantity=1";
redirecturl += "¤cy=SEK";
redirecturl += "&invoice=" + invoiceNumber;
redirecturl += "&custom=" + requestId;
redirecturl += "&on0=" + HttpContext.Current.Request.UserHostAddress;
redirecturl += "&return=" + ConfigurationManager.AppSettings["SuccessURL"].ToString() + "?Type=ShowDetail";
redirecturl += "&cancel_return=" + ConfigurationManager.AppSettings["FailedURL"].ToString();
redirecturl += "¬ify_url=" + ConfigurationManager.AppSettings["Notification"].ToString();
return redirecturl;
}
,這是我從貝寶回到我加後檢查一切雷斯
if (Request.QueryString["cm"] != null)
{
const string authToken = "*********************************";
string txToken = Request.QueryString["tx"];
string query = "cmd=_notify-synch&tx=" + txToken + "&at=" + authToken;
//const string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
string strSandbox = "https://www.paypal.com/cgi-bin/webscr";
var req = (HttpWebRequest)WebRequest.Create(strSandbox);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = query.Length;
var streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
streamOut.Write(query);
streamOut.Close();
var streamIn = new StreamReader(req.GetResponse().GetResponseStream());
string strResponse = streamIn.ReadToEnd();
streamIn.Close();
var results = new Dictionary<string, string>();
if (strResponse != "")
{
var reader = new StringReader(strResponse);
string line = reader.ReadLine();
if (line == "SUCCESS")
{
while ((line = reader.ReadLine()) != null)
{
results.Add(line.Split('=')[0], line.Split('=')[1]);
}
var userId = Convert.ToInt64(Session["UserID"]);
var item = Convert.ToInt64(Request.QueryString["cm"]);
context = new entities();
var existUser = context.Payments.Where(u => u.UserID == userId).ToList();
var existItem = existUser.Where(i => i.RequestID == item).ToList();
var paypalInvoice = results["invoice"];
var txn_id = results["txn_id"];
var sameInvoice =
existItem.Where(i => i.invoice== paypalInvoice).FirstOrDefault();
if (sameInvoice != null)
{
var currentAmount = Request.QueryString["amt"];
var dbAmount = Convert.ToDecimal(sameInvoice.Amount).ToString();
var currentIp = HttpContext.Current.Request.UserHostAddress;
if (dbAmount != null)
{
if (currentAmount == dbAmount)
{
if (currentIp == sameInvoice.IP)
{
sameInvoice.Status = true;
sameInvoice.PaypalTX = txn_id;
pnlSearch.Visible = false;
pnlShowDetail.Visible = true;
ShowDetail(Request.QueryString["cm"], true);
btnBack.Visible = false;
PrivateDetail.Visible = true;
interested.Visible = false;
context.SaveChanges();
}
}
}
}
}
else if (line == "FAIL")
{
// Log for manual investigation
Response.Write("Unable to retrive transaction detail");
}
}
else
{
//unknown error
Response.Write("ERROR");
}
}
什麼問題? 也在第一次測試時,我付了錢但沒有發生任何事情。發票狀態wad仍然是錯誤的,而它應該變成真,因爲我已付款!
非常感謝,所以我該怎麼知道!請幫助我,你有什麼建議?爲什麼它在沙盒上工作? –
@ user1615818我不知道工作是什麼,但事實並非如此。你可以在這裏給你如何在付款的PayPal的第一篇文章? – Aristos
@ user1615818您是否閱讀過本手冊? https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_WebsitePaymentsStandard_IntegrationGuide.pdf – Aristos