.NET 中的 Paypal v2 快速结帐集成

Posted

技术标签:

【中文标题】.NET 中的 Paypal v2 快速结帐集成【英文标题】:Paypal v2 express checkout integration in .NET 【发布时间】:2021-07-23 03:41:53 【问题描述】:

我目前正在检查 v2 express checkout 的集成过程,并且有很多文档造成混乱。

到目前为止,我使用的是 paypal 域中的 checkout.js,并使用下面的代码在客户端创建订单,如下所示

paypal.Button.render( env: 'sandbox', // 或者 'sandbox',

        commit: true, // Show a 'Pay Now' button

        style: 
            color: 'gold',
            shape: 'rect',
            label: 'paypal',
            size: 'medium',
            tagline: false,
            width: 150
        ,

        payment: function (data, actions) 
            /* Set up a url on your server to create the payment */
            var CREATE_URL = '/paypal/createpaypalPayment';

            /* Make a call to your server to set up the payment */
            return paypal.request.post(CREATE_URL)
                .then(function ( result ) 
                    var test = JSON.parse(result);
                    return test.id;
                );
            
        ,

        onAuthorize: function (data, actions) 
            /* Set up a url on your server to execute the payment */
            var EXECUTE_URL = '/paypal/executepaypalPayment';

            /* Set up the data you need to pass to your server */
            var data = 
                paymentID: data.paymentID,
                payerID: data.payerID
            ;
            return paypal.request.post(EXECUTE_URL, data)
                .then(function (res) 
                    return null;
                );
        
        

        
    , '#paypalcheckout');
);

请找到创建订单的服务器端代码。

    [HttpPost]
         public JsonResult createpaypalpayment()
         
            var client = new WebClient();
            string credentials = clientid + secretid;
            client.Headers.Add("authorization", "Basic " + credentials);
            client.Headers.Add("content-type", "application/json");
            client.Headers.Add("accept-language", "en_US");
            client.Headers.Add("accept", "application/json");

            var body = @"
                  ""intent"": ""AUTHORIZE"",
                  ""purchase_units"": [
                  ""amount"": 
                    ""currency_code"": ""USD"",
                    ""value"": ""100.00""
                
            ]
                ";

            try
            
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                var response = client.UploadString("https://api.sandbox.paypal.com/v2/checkout/orders/", "POST", body);
                return Json(new  result = response , JsonRequestBehavior.AllowGet);
                

            

我参考了以下文档 https://developer.paypal.com/docs/archive/orders-integration-guide/#integration-steps

我很了解如何在创建订单后显示订单详细信息并获得客户的批准? 任何人都可以为此提供建议。

提前致谢

【问题讨论】:

【参考方案1】:

checkout.js 已弃用,文档已存档,因此我的建议是您遵循 developer.paypal.com 上的当前文档

在your other question 中,提供了指向该文档的链接。

【讨论】:

以上是关于.NET 中的 Paypal v2 快速结帐集成的主要内容,如果未能解决你的问题,请参考以下文章

带有反应 SDK 的 PayPal 结帐(v2)

Paypal 快速结帐集成安全问题

PayPal - 10001 内部错误:超时处理请求快速结帐

网站支付标准和 PayPal 支付 Pro 之间的快速结帐差异

PayPal IPN 集成(快速结帐 - Razor/C#)

PayPal .NET SDK 1.7.2 - 快速结帐?