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

时间:2021-04-29 18:16:59

标签: paypal

我目前正在检查 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 个答案:

答案 0 :(得分:0)

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

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