【问题标题】:Paypal v2 express checkout integration in .NET.NET 中的 Paypal v2 快速结帐集成
【发布时间】: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

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

提前致谢

【问题讨论】:

    标签: paypal


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 2011-12-12
      • 2016-05-21
      • 2017-12-01
      • 2017-09-11
      • 2014-12-07
      • 2013-03-05
      • 2017-11-22
      • 2012-10-08
      相关资源
      最近更新 更多