asp.net - Paypal支付安全

标签 asp.net paypal paypal-ipn paypal-sandbox

我想使用 Paypal 服务,我正在测试过程中并使用 Sandbox,但令人困惑的问题是,当用户从我的网站购买产品并随后被 Paypal 重定向到我的“成功”页面时,我收到带有“查询字符串”的数据,只有从那里我才能读取数据。 我认为这是错误的,因为可以很容易地更改和修改“Querystring”。我想知道如何确定我收到的“查询字符串”属于通过购买请求付款的用户。

        string redirecturl = "";
        redirecturl += "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" + ConfigurationManager.AppSettings["paypalemail"].ToString();            
        redirecturl += "&first_name=erfanpj";
        redirecturl += "&city=stockholms";
        redirecturl += "&state=stockholms";
        redirecturl += "&item_name=" + l1.Text;
        redirecturl += "&amount=" + l3.Text;           
      //redirecturl += "&business=erfanpj@ymail.com";
        redirecturl += "&shipping=5";
        redirecturl += "&handling=5";
        redirecturl += "&tax=5";
        redirecturl += "&quantity=1";
        redirecturl += "&currency=USD";
        redirecturl += "&return=" + ConfigurationManager.AppSettings["SuccessURL"].ToString();
                 redirecturl += "&cancel_return=" + ConfigurationManager.AppSettings["FailedURL"].ToString();
        Response.Redirect(redirecturl);
    }

此外,我非常想知道“notify_url”和“paypal-ipn”参数到底做了什么。非常感谢这里尊敬的读者的任何反馈。

问候,

最佳答案

根据您的问题,我不确定您是否充分了解 PayPal 购买流程。

首先,您应该使用加密的 PayPal 生成按钮(在您的 PayPal 帐户中制作),并防止用户更改购买页面上的参数。

其次,在交易发生后,PayPal IPN 将 POST(通过 SSL)到您指定的网络服务器上的页面。在这里您可以提取购买的详细信息。 ( C# example on PayPal IPN handler ) 在完成订单之前,您应该确保响应是 VERIFIED,验证收件人电子邮件地址是您的电子邮件地址,并且 IPN 处理程序中的交易金额是正确的。 (更多代码示例位于 PayPal Code Samples。)

关于asp.net - Paypal支付安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302649/

相关文章:

paypal - 在 Paypal IPN 交易期间存储 session 变量的机制

php - IPN 如何将用户用户名添加到 Paypal 交易 (PHP)

c# - 中继器中的级联下拉列表。带有 SQL 源和添加/删除选项的 DropDownLists

asp.net - 如何最大限度地降低 XSS 易受攻击的应用程序的风险?

asp.net - 在 PostBack 上保留动态 UserControl

magento - 在后端为 Paypal 失败的交易创建订单

paypal - 如何使用 PayPal API 凭据?

asp.net - 加速 ASP.Net 网站或应用程序

Paypal BAID mp_status 不明确,似乎没有记录

paypal - next_payment_date Paypal IPN 不工作(Recurring_payments)