Paypal Developer Beta:测试交易未在 Sandbox Business 帐户中列出

Posted

技术标签:

【中文标题】Paypal Developer Beta:测试交易未在 Sandbox Business 帐户中列出【英文标题】:Paypal Developer Beta: Test transaction not listed in Sandbox Business account 【发布时间】:2013-06-10 01:13:09 【问题描述】:

所以.....看来 Paypal 开发人员决定从 2013 年起更改他们全新网站上的所有内容,这让我过去几天的生活变得悲惨。请注意,我对在网站中集成 Paypal 完全陌生。我尝试按照本教程进行操作,但它是从 2009 年开始的:http://www.codeproject.com/Articles/42894/Introduction-to-PayPal-for-C-ASP-NET-developers

我没有使用 Paypal Api。不知道要不要?

这就是我所做的:

1) 我去了https://developer.paypal.com/ 并用我自己的paypal 帐户登录。

2) 这是棘手的部分之一。在我检查过的教程中,有一个创建“预配置测试帐户”的选项,但它不再可用。所以我用他们的新创建帐户按钮创建了两个测试帐户(或者我认为)。一名个人(买方)和一名企业(卖方)。如果这些测试帐户的邮件地址需要存在或者它们是否可以是虚构的,则没有提到任何教程......我让买家成为真实的(我为此测试创建的)而卖家是虚构的。

3) 在我的测试卖家账户中,我使用 CallbackUrl 激活了 AutoReturn,并激活了支付数据传输 (PDT) 并将令牌放入我的 web.config。

4) 再次按照教程,我创建了我的 .Net Visual Studio 项目。一些非常简单的东西,一个 Default.aspx、一个 Callback.aspx 和一个 Cancelled.aspx。回调用于检查交易是否成功,Canceled 用于检查用户是否取消交易。

5) 这是 Default.aspx 的代码/Paypal 隐藏域变量。没什么特别的:

<form id="form1" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" runat="server">
<div>
    <!-- Type: Buy Now/Simple Payment -->
    <input type="hidden" name="cmd" value="_xclick" />
    <!-- PayPal ID or an email address associated with your PayPal account -->
    <input type="hidden" name="business" value="THE-SELLER-MAIL-ADRESS" />
    <!-- Name of service selected -->
    <input type="hidden" name="item_name" value="Forfait Regulier" />
    <!-- Currency -->
    <input type="hidden" name="currency_code" value="CAD" />
    <!-- Return method: 2 – the buyer’s browser is redirected to the return URL by using the POST method, and all payment variables are included -->
    <input type="hidden" name="rm" value="2" />
    <!-- Button text -->
    <input type="hidden" name="cbt" value="Retourner sur Bloc D'Affaires" />
    <!-- Cancel callback url -->
    <input type="hidden" name="cancel_return" value="http://dev.triarts.ca/Pages/Cancelled.aspx" />
    <!-- Amount -->
    <input type="hidden" name="amount" value="10.00" />
    <!-- Don't show Shipping adress form -->
    <input type="hidden" name="no_shipping" value="1" />
    <!-- Don't show seller note box -->
    <input type="hidden" name="no_note" value="1" /> 
    <!-- Button -->
    <input type="submit" value="Payer" />
</div>
</form>

6) Callback.aspx 的代码隐藏,取自并改编自上述 2009 年的教程:

protected void Page_Load(object sender, EventArgs e)

    string authToken = WebConfigurationManager.AppSettings["PDTToken"];

    //read in tx token from querystring
    string txToken = Request.QueryString.Get("tx");


    string 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());
    string strResponse = stIn.ReadToEnd();
    stIn.Close();

    // If response was SUCCESS, parse response string and output details
    if (strResponse.StartsWith("SUCCESS"))
    
        Label1.Text = "Success";
    
    else
    
        Label1.Text = "Oooops, something went wrong...";
    

7) 到目前为止,它并不复杂。之后,我首先登录我的 Paypal 开发者帐户。我启动项目并对其进行测试。按立即购买按钮,按预期重定向到 Paypal 沙盒测试商店。我使用我的买家测试帐户登录,点击立即付款。过程。交易成功。该页面按预期将我重定向到 Callback.aspx,并显示成功消息。没那么破旧。

8) 但这是另一个棘手的部分。在 Paypal 开发者网站中,我看到买家/卖家通知说付款已发送/接收。我在沙盒中以测试买家身份登录并检查最近的活动:一个条目显示付款已完成并已完成(状态)。我以测试卖家的身份登录,我查看了最近的活动,我没有看到任何交易条目,但 Paypal 余额增加了,这意味着添加了付款?!?...

我不明白...这是假设发生的吗?我做错什么了吗?如果我使用这些设置,一切都会出错吗?

在一个对我没有真正帮助的视频教程中,它清楚地显示了卖家测试账户中的交易条目。为什么我的没有出现,或者我到现在为止完成的任何无数次测试交易都没有出现?

谁能确保这个过程是合法的?这会让我安心很多。当我不确定这一点时,我会觉得乱花钱很不舒服。此代码是否足以创建付款后逻辑,例如更新我的数据库以提及付款已完成或已取消?如果有更简单的方法,请随时告诉我。

提前非常感谢您,并对这部史诗小说感到抱歉。

【问题讨论】:

这可能是沙盒问题的一部分。上周左右,沙盒历史重定向到 Live 站点时出现了问题。您能否提供其中一笔测试付款的交易 ID?我想查找并进一步研究。 以下是我尝试的几个测试交易中的 3 个:交易 ID:4TU573346J375571Y / 交易 ID:1F165987SS041432U / 交易 ID:54P93871C25568352 您登录的帐户是“myMechantCalice”,对吧?我无法重现该问题。当我完成支付标准按钮时,卖家和买家账户中的详细信息都会正确显示。你能提供一个屏幕截图吗?我可以用它来展示沙盒工程师。 是的,这是商家帐户。如果我错了,请告诉我,在卖家账户中,收到的所有交易/付款都不会显示在默认/概览页面上,这是我们登录后登陆的页面,对吗?他们单击“查看交易>收到的付款”链接后显示在页面中。我相信这让我感到困惑。我认为交易出现在概览中,就像买家账户一样......我刚刚重新检查了我的测试账户,我看到了我上周所做的所有测试交易。 那么,这是否意味着我的代码是合法的并且可以在 Live 设置中工作? 这是我今天做的最后一个测试交易的截图:Test Buyer Payment Sent history / Test Seller Payment Received History 【参考方案1】:

新沙盒企业帐户目前默认启用 Payments Pro,并且帐户布局不同于标准企业或个人帐户。使用 Pro 帐户,您在首次登录时不会在“帐户概览”页面上看到交易。

要查看 Pro 帐户上的交易,您需要打开“历史记录”选项卡。你想通了,你很高兴。我担心交易没有出现在历史选项卡上,但这似乎不是问题,所以这是一种解脱。

【讨论】:

感谢帕特里克的帮助。如果这意味着我的代码没问题,那么只有我吓坏了。对不起,吓到了。

以上是关于Paypal Developer Beta:测试交易未在 Sandbox Business 帐户中列出的主要内容,如果未能解决你的问题,请参考以下文章

火鸡堂 对 基于云的胜利冲锋队 为了交项目干杯 的 Beta 产品测试报告

如何在 PayPal Developer 中取消链接以前链接的沙盒测试帐户

我在 developer.paypal 上的 appID 是啥

在 PHP 中使用 IPN 的 Paypal 无法在新的 Beta 开发人员沙箱中运行

PayPal 网站支付标准的 IPN 模拟器中应测试哪些交易类型?

当我的应用程序已经获得批准并且 [Pending developer release] 并且我想在 [Beta 测试] 中对其进行测试时,我是不是需要等待另一次审核?