winforms 我如何验证用户贝宝支付成功/失败,并发送消息到Winform,如果成功在C# .NET?

1u4esq0p  于 2023-01-05  发布在  C#
关注(0)|答案(1)|浏览(151)

我必须在我的Winforms应用程序上实现一个功能,允许用户在应用程序上做更多的事情。他们成功地在PayPal付款后,所以我有下面的代码,将用户重定向到浏览器上的PayPal付款页面:

private void PaypalPayment_Button(String TypeOf,String Pricing) 
{
    string url = "";

    string business = "nfrealyt@gmail.com";     
    string country = "MY";                  
    string currency = "USD";            

    url += "https://www.paypal.com/cgi-bin/webscr/" + 
        "?cmd=" + "_xclick" +
        "&amount=" + Pricing + 
        "&business=" + business + 
        "&item_name=" + TypeOf;
      

    System.Diagnostics.Process.Start(url);
    // https://www.paypal.com/paypalme/flowstoragepaypal //https://www.paypal.com/cgi-bin/webscr 
}

现在一切都很好,我正在处理的主要问题是验证用户是否进行了事务,例如,如果进行了事务,则执行某些代码,例如在Winforms应用程序上显示MessageBox:
第一个月
有没有办法做到这一点?我已经做了数百谷歌搜索,但没有成功。

bool paymentMade = false;

private void PaypalPayment_Button(String TypeOf,String Pricing) 
{
    string url = "";

    string business = "mygmail@gmail.com";     
    string country = "MY";                  
    string currency = "USD";            

    url += "https://www.paypal.com/cgi-bin/webscr/" + 
        "?cmd=" + "_xclick" +
        "&amount=" + Pricing + 
        "&business=" + business + 
        "&item_name=" + TypeOf;
      

    System.Diagnostics.Process.Start(url);
    paymentMade = true;
    if(paymentMade == true)
    {
        MessageBox.Show("Payment has made");
    }
}

我期待着一个MessageBox消息将显示在WinForms上,只要用户成功地作出了付款。

iaqfqrcu

iaqfqrcu1#

更改集成以使用v2/checkout/orders API并创建两个路径(url路径),一个用于"创建订单",一个用于"捕获订单"。您可以使用(最近被弃用)Checkout-NET-SDK用于路径对PayPal的API调用,或者您自己的HTTPS实现,首先获取访问令牌,然后执行调用。这两种路由都应该返回/输出onlyJSON数据(无HTML或文本)。在第二种途径中,当捕获API成功时,您应验证金额是否正确,并将生成的付款详细信息存储在数据库中(特别是purchase_units[0].payments.captures[0].id,即PayPal交易ID)并执行任何必要的业务逻辑(如预订产品或发送电子邮件),然后立即将返回JSON转发给前端调用者。如果出现错误,还应转发其JSON细节,因为前端必须处理此类情况。
Pair those 2 routes with this frontend approval flow: https://developer.paypal.com/demo/checkout/#/pattern/server .
如果您需要从客户端向服务器发送任何额外的数据,比如让他们先填写表单,请在fetch中添加一个body参数,该参数的值为JSON字符串或对象。JS SDK还提供了各种onInit/onClick函数,您可以在创建PayPal订单之前使用这些函数来验证表单是否有效。
如果您的预期流程是在PayPal交易成功捕获 * 之后 * 收集表单数据,您可以从onApprove函数启动您的流程,但在使其成为一个单独的两步流程时,您必须围绕其他复杂因素进行设计。例如,如果PayPal交易完成,然后用户停止或其浏览器/选项卡关闭,而没有输入您需要的其他表单数据,要为交易收款。

相关问题