ASP.NET核心中的PayPal

问题描述 投票:16回答:6

如何在PayPal API应用程序中与ASP.NET Core集成?我尝试了各种库,但没有一个与ASP.NET Core兼容......我该怎么做?

c# paypal asp.net-core-1.0
6个回答
7
投票

如果有人发现这个问题,我会发布更新。

截至目前,没有官方发布的.net核心sdk for Paypal,但在github上看,自从提出这个问题以来已经取得了很多进展。

开发人员目前已经发布了sdk的官方测试版,可以在这里下载或下载:qazxsw poi

如果您以前使用他们的sdk的第一个版本,他们甚至有一个迁移指南。


6
投票

我和你有同样的问题。看了几个星期,发现没有办法让SDK API与.Net Core一起使用

您有几个选项,首先使用4.6或其他东西重新创建项目。其次,如果您想要进行单项销售,请使用来自您应用的基于URL API的调用。 (这是我想做的)

我是如何做到的是将javascript附加到执行以下操作的按钮单击:

https://github.com/paypal/PayPal-NET-SDK/tree/2.0-beta

完成此操作后,您需要在paypal帐户中设置IPN URL。您的帐户必须是企业帐户,转到您的个人资料,点击卖家工具,您将看到IPN设置。在那里添加没有端口的面向Web的URL(除非你使用像ngrok这样的东西,否则Localhost将无法工作)

在这里构建你的Item_code变得很重要。 IPN会将变量列表发送回您公开的API,然后您可以进行一些匹配等。这不适合你,但这就是我抓住这个信息并处理它的方式。我的情况是我有一个用户报名参加活动:

function PayPalPaymentEvent(eventid) {

    var URL = 'https://www.paypal.com/cgi-bin/webscr?';
    var cmd = '_xclick';
    var business = Your Business Email;
    var currency_code = 'AUD';
    var amount = 100;
    var item_name = Name Of Your Item;
    var item_number = Some Identifier;
    var returnurl = 'http://somepage?info=success';
    var cancel_return = 'http://somepage?info=failed';
    var notify_url = 'http://WebFacingSite/API/PayPalReg';
    var tax = (amount * 0.10);

    var fullURL = URL + 'cmd=' + cmd + '&business=' + business + '&currency_code=' + currency_code + '&amount=' + amount + '&tax=' + tax + '&item_name=' + item_name + '&item_number=' + item_number + '&return=' + returnurl + '&cancel_return=' + cancel_return + '&notify_url=' + notify_url;

    ///// this ajax bit I use to record the transaction has started
    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        url: '/API/PaymentStarted?eventid=' + eventid + '&UserID=' + UserID + '&paymentID' + paymentID,
        error: function () {
            SetMessage('error', 'Something has gone horribly, horribly wrong')
        },
        success: function (data) {

            window.location.href = fullURL;

        },
        type: 'POST'
    });


  }

希望这个对你有帮助

案件


3
投票

我面临同样的问题。我可以选择没有SDK的REST API实现:[HttpPost] [Route("API/PayPalReg")] public JsonResult ReceiveInput(string txn_id, string payment_date, string payer_email, string payment_status, string first_name, string last_name, string item_number, string item_name, string payer_id, string verify_sign) { var paypaltypes = item_name.Split('-'); var result = item_number.Split('-'); var userid = int.Parse(result[1]); var TransPaymentString = result[1].ToString() + result[0].ToString(); var TransPayment = int.Parse(TransPaymentString); var user = _context.Person.Include(p => p.Payments).Where(p => p.UserID == userid).Single(); var payment = user.Payments.Where(p => p.TransPaymentID == TransPayment).Single(); if (paypaltypes[0] == "Event") { var eventid = int.Parse(result[0]); payment.PaymentReceipt = txn_id; payment.PaymentReceived = true; payment.PaymentReceivedDate = DateTime.Now; payment.PaymentNotes = payer_email + " " + first_name + " " + last_name + " " + item_number + " " + payer_id + " " + verify_sign + " " + item_name; _context.Payments.Update(payment); _context.SaveChanges(); var userevent = _context.Person.Include(p => p.EventRegistry).Where(p => p.UserID == userid).Single(); var eventreg = userevent.EventRegistry.Where(er => er.EventID == eventid).Single(); eventreg.EventPaid = true; _context.EventRegistry.Update(eventreg); _context.SaveChanges(); Response.StatusCode = (int)HttpStatusCode.OK; return Json("Json Result"); }

或者我刚刚找到了存储库,它可能很有趣:)

https://developer.paypal.com/docs/api/

它是当前.Net SDK到.NETCore的一个端口。我还没有检查过代码,但如果它有效,它会节省很多时间!

您也可以选择旧的API选项:

https://github.com/geoperez/PayPalCore

但由于它已经很久了,我不推荐它,因为PayPal有一天可能会停止它。但是,您可以在那里找到其他信息:

http://www.codeproject.com/Articles/42894/Introduction-to-PayPal-for-C-ASP-NET-developers


3
投票

所以,也许,当我发布这个并且你已经摆脱了这个问题时已经太晚了,但是这对于将来可能需要这个问题的任何人都很容易。

因此我们知道PayPal之前没有提供任何nuget包来支持.Net Core中的PayPal付款。但是结束这种痛苦,它最终得出了一个解决方案 - 通过购买https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/formbasics/来提供更好的开发支持。

这是一个BrainTreepayments.com供参考。


1
投票

在发布处于候选发布状态的link(2.0)片刻之后,PayPal SDK将支持ASP.NET Core。


0
投票

在此链接上,new version of SDK上的PayPal有一个Nuget包:

ASP.NET Core

该包公开了与经典.NET相同的API。

但请注意,这不是PayPal的官方Nuget包。

© www.soinside.com 2019 - 2024. All rights reserved.