Asp.net core MVC paypal支付、回調——app支付

來源:互聯網
上載者:User

標籤:content   col   針對   url   準備工作   res   填充   log   validate   

最近剛加入了一家跨境物聯網公司,剛來接到的需求就是支付和paypal支付,支付做的人很多了,沒什麼大的痛點,之前的隨筆提到過,今天主要來談談paypal支付。

首先應該申請一個沙箱環境的支付帳號和收款帳號,方便後面設定帳號資訊測試支付用。

剛開始準備工作就遇到一個坑就是文檔,因為paypal只要是針對跨境支付的,所以他的文檔也都是英文的,這樣對於一個英文底子差的人真的是硬傷(最頭痛的是電腦一翻譯就卡),沒辦法只能硬著頭皮一點點的看,實在是看不懂的就百度一段段翻譯。看完了文檔就下載了paypal的sdk,sdk版本很多選擇適合自己的就行,由於我用的是.net core直接在nuget裡面引用paypal的dll就行了。直接貼一下核心代碼僅供參考:

由於我們是寫的wabapi介面供APP端調用,所以調起paypal支付主要是APP端完成的,但是剛開始沒弄清楚流程,自己也研究了下pc端的調起方式,引用了sdk後用裡面的東西是很簡單的

我這邊調起主要用的public static Payment Create(APIContext apiContext, Payment payment);參數根據實體類填充就好。

我們api主要是做支付後的幕後處理操作,所以拿到APP支付的ID就能通過sdk擷取到支付的詳細資料Payment.Get(apiContext, paypalId),介面就可以對資訊入庫了。

以為這樣就完了的,後來為了保險,又加上了paypal的非同步回調IPN

var body = string.Empty;
using (var reader = new StreamReader(Request.Body, Encoding.UTF8))
{
body = await reader.ReadToEndAsync();
}
body = "cmd=_notify-validate&" + body;

var paras = body.Slice("&").ToDictionary(x => x.Slice("=", 2)[0], x => WebUtility.UrlDecode(x.Slice("=", 2)[1]));

例如orderID=paras.Peek("txn_id")

var content = new FormUrlEncodedContent(paras);

//_paypalConfig.ValidateUrl配置的沙箱地址:https://www.sandbox.paypal.com/cgi-bin/webscr
var response = await client.PostAsync(_paypalConfig.ValidateUrl, content);
var message = await response.Content.ReadAsStringAsync();

拿到回調的資訊後判斷message.Equals("VERIFIED")&&paras.Peek("payment_status").Equals("Completed")同時都滿足後台再給使用者完成儲值。

OK,基本流程就是這樣了,當然這個只是個人做法,僅供參考!!!

Asp.net core MVC paypal支付、回調——app支付

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.