我必须在我的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上,只要用户成功地作出了付款。
1条答案
按热度按时间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交易完成,然后用户停止或其浏览器/选项卡关闭,而没有输入您需要的其他表单数据,要为交易收款。