2016-10-25 11 views
10

ASP.NET Coreアプリで統合するにはどうすればよいですか?私は様々なライブラリを試しましたが、どれもASP.NET Coreと互換性がありません...どうすればいいですか?ASP.NETコアのPayPal

+0

あなたのプロジェクトでは何が参照されていますか? –

+4

この質問に投票している人は、理由を説明してください。 –

+0

検索だけを使用してください。 http://stackoverflow.com/questions/16785639/paypal-api-finding-the-right-one –

答えて

1

誰かがこの質問を見つけた場合は、更新を掲載します。

今のところ、Paypal用の.netコアsdkの正式リリースはありませんが、githubを見ると、この質問が尋ねられて以来、多くの進歩がありました。

開発者に対し、現在のフォークのために利用可能であるか、ここからダウンロードSDKの正式ベータ版をリリースしています https://github.com/paypal/PayPal-NET-SDK/tree/2.0-beta

以前に彼らのSDKの最初のバージョンを使用していたなら、彼らにも移行ガイドを持っています。

3

私は同じ問題に直面しています。ノーSDKとREST API実装のために行くことがあります。 https://developer.paypal.com/docs/api/

または私はちょうどリポジトリは、それが面白い:)

https://github.com/geoperez/PayPalCore

それは、現在の.Net SDKのポートであるかもしれないことがわかりました.NETCoreへ。私はまだコードをチェックしていないが、それが動作すれば多くの時間を節約するだろう!

ます。また、古いAPIのオプションのために行くことがあります。

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

をしかし、それが古いとPayPalがいつかそれを中止することができて、私はそれをお勧めしません。あなたがそこに追加の情報を見つけることができますしかし は:

https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/formbasics/

2

を私はあなたと同じ問題がありました。 数週間見て、SDKコアを.Netコアで使用する方法がないことがわかりました

いくつかの選択肢があります。まず、4.6などを使ってプロジェクトを作り直してください。 次に、単一アイテムの販売をしたい場合は、アプリからのURL APIベースの呼び出しを使用します。 (私がやりたいことです)私はそれが次のようでしたボタンのクリックにはJavaScriptを取り付けたどうやっ

:これが完了したら

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' 
    }); 


    } 

あなたがIPNを設定する必要がありますがあなたのPaypalアカウントのURL あなたのアカウントはビジネスアカウントでなければなりません、あなたのプロフィールに行き、売り手ツールをクリックすると、IPN設定が表示されます。 ポートに接続されていないウェブにURLを追加します(ローカルホストはngrokのようなものを使用しない限り動作しません)

ここではItem_codeの権利が重要になります。 IPNは公開された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"); 

     } 

希望これはビット

カズ

1

だから多分、それは私がこれを掲示していたときには遅すぎだとあなたに役立ちますその問題から外れましたが、将来これを必要とする可能性のある人のためのものです。

PayPalが以前に.Net CoreのPayPal支払いをサポートするためのナゲットパッケージを提供していなかったことを知った。 しかし、この苦痛を終わらせるために、より良い開発者サポートを提供するために、BrainTreepayments.comを購入することによって、最終的に解決策が出てきました。

参考のためlinkです。