C# 專案中【支付寶】介面開發整合案例
.net專案中用於支付寶線上充值案例(即時到賬型別)
1、在官網下載支付寶C#版本demo 下載demo
2、找到其中的c#版本案例
3、開發站內整合程式碼,支付寶線上充值即時到賬服務,主要流程就是站內提交對接引數到支付寶介面,支付寶自主進行線上支付充值,回撥站內提供的回撥介面,接收支付寶的通知資訊,完成站內的充值業務。
4、程式碼參考
#region 支付寶即時到賬充值請求 Get["/alipayRequest"] = parameters => { if (Page.AnalystHasLogin || Page.UserHasLogin) { string alipayTotalFee = ObjectHandlers.Get("alipayTotalFee"); string rechangeType = ObjectHandlers.Get("rechangeType"); string alipaySubject = DateTime.Now.ToString("yyyyMMddHHmmssffff", DateTimeFormatInfo.InvariantInfo); string alipayBody = DateTime.Now.ToString("yyyyMMddHHmmssffff", DateTimeFormatInfo.InvariantInfo); //支付型別 string payment_type = "1"; //伺服器非同步通知頁面路徑,需http://格式的完整路徑,不能加?id=123這類自定義引數 string notify_url = aplipayURL + "/alipay/alipayNotifyUrl"; //頁面跳轉同步通知頁面路徑,需http://格式的完整路徑,不能加?id=123這類自定義引數,不能寫成http://localhost/ string return_url = aplipayURL + "/alipay/alipayReturnUrl"; //賣家支付寶帳戶 string seller_email = alipaySellerEmail; //商戶訂單號,商戶網站訂單系統中唯一訂單號,必填 string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmssffff", DateTimeFormatInfo.InvariantInfo); //訂單名稱 string subject = alipaySubject; //付款金額 string total_fee = alipayTotalFee; //訂單描述 string body = alipayBody; //商品展示地址,需以http://開頭的完整路徑 string show_url = "http://xxxxx/"; //防釣魚時間戳,若要使用請呼叫類檔案submit中的query_timestamp函式 string anti_phishing_key = Submit.Query_timestamp(); //客戶端的IP地址,非區域網的外網IP地址,如:221.0.0.1 string exter_invoke_ip = ""; //把請求引數打包成陣列 SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>(); sParaTemp.Add("partner", zhuge.Alipay.Config.Partner); sParaTemp.Add("_input_charset", zhuge.Alipay.Config.Input_charset.ToLower()); sParaTemp.Add("service", "create_direct_pay_by_user"); sParaTemp.Add("payment_type", payment_type); sParaTemp.Add("notify_url", notify_url); sParaTemp.Add("return_url", return_url); sParaTemp.Add("seller_email", seller_email); sParaTemp.Add("out_trade_no", out_trade_no); sParaTemp.Add("subject", subject); sParaTemp.Add("total_fee", total_fee); sParaTemp.Add("body", body); sParaTemp.Add("show_url", show_url); sParaTemp.Add("anti_phishing_key", anti_phishing_key); sParaTemp.Add("exter_invoke_ip", exter_invoke_ip); //建立請求,此方法支付寶demo已經提供,不在此提現了就 string sHtmlText = Submit.BuildRequest(sParaTemp, "get", "確認"); //新增充值記錄 //本站記錄使用者充值記錄,後續支付寶回撥你的站內通知介面 return sHtmlText; } else { return Response.AsRedirect("/ErrorMsg"); } }; #endregion
5、上一步會自動提交到支付寶平臺,完成充值後,會呼叫你的回撥地址
//伺服器非同步通知頁面路徑,需http://格式的完整路徑,不能加?id=123這類自定義引數 string notify_url = aplipayURL + "/alipay/alipayNotifyUrl";6、回撥地址方法程式碼參考
#region 支付寶即時到賬充值 alipayReturnUrl Get["/alipayReturnUrl"] = parameters => { SortedDictionary<string, string> sPara = GetRequestGet(); if (sPara.Count > 0)//判斷是否有帶返回引數 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.Verify(sPara, ObjectHandlers.Get("notify_id"), ObjectHandlers.Get("sign")); if (verifyResult)//驗證成功 { //商戶訂單號 string out_trade_no = ObjectHandlers.Get("out_trade_no"); //支付寶交易號 string trade_no = ObjectHandlers.Get("trade_no"); //交易狀態 string trade_status = ObjectHandlers.Get("trade_status"); //更新站內訂單中的支付寶訂單資訊 //此步驟更新4步中記錄中的資訊,當做充值備份 if (ObjectHandlers.Get("trade_status") == "TRADE_FINISHED" || ObjectHandlers.Get("trade_status") == "TRADE_SUCCESS") { //更新站內充值訂單狀態為已完成 //此步驟用於更新4步中的充值記錄狀態 //更新站內使用者積分即可 } else { HttpContext.Current.Response.Write("trade_status=" + ObjectHandlers.Get("trade_status")); } } else//驗證失敗 { HttpContext.Current.Response.Write("驗證失敗"); } } else { HttpContext.Current.Response.Write("無返回引數"); } return null; }; #endregion7、以上程式碼只做為業務開發的流程參考,程式碼不做開發用,各位看官還是要結合自己的站內業務開發
8、支付寶支援本地除錯,這個很方便,後續會增加網銀介面的實現
由龐順龍最後編輯於:4年前
內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。
相關文章
- 支付寶介面開發
- 專案開發必備API介面API
- 玩轉 iOS 開發:整合 AliPay – 支付寶iOS
- 玩轉 iOS 開發:整合 AliPay - 支付寶iOS
- hadoop專案開發案例舉例Hadoop
- 網站如何整合支付寶支付介面網站
- SAP Business ByDesign 和支付寶與釘釘整合的一個原型開發案例原型
- IDEA支付寶小程式開發流程——專案搭建Idea
- 支付寶介面對接開發過程
- iStylePDF c#整合開發示例C#
- 專案開發必備API介面集合API
- 專案實戰介面開發SpringBootSpring Boot
- 現有Android專案中整合Flutter/Flutter混合開發實戰(一)AndroidFlutter
- 支付寶線上支付介面開發教程與總結
- 現有專案中整合FlutterFlutter
- 基於.NetCore開發部落格專案 StarBlog - (26) 整合Swagger介面文件NetCoreSwagger
- RedisStack部署/持久化/安全/與C#專案整合Redis持久化C#
- 原生App專案整合flutter混合開發詳細指南APPFlutter
- 秒合約開發系統專案案例|秒合約現成案例
- 軟體專案開發團隊組員跨專案組兼職案例分析
- 整合專案中的風險管理 (轉)
- python專案開發例項-Python專案案例開發從入門到實戰——爬蟲、遊戲Python爬蟲遊戲
- 《python專案開發案例集錦》讀書筆記Python筆記
- Python專案開發案例集錦及配套程式碼Python
- 在 Laradock 中開發 Vue 專案Vue
- C#專案例項中讀取並修改App.config檔案《轉》C#APP
- 在開發專案中進行有效的專案管理(轉)專案管理
- C#開源資源專案C#
- Python專案實戰開發最全案例,涵蓋8個開發方向Python
- 【案例】用Jmeter做微信小程式專案介面測試JMeter微信小程式
- 用Jmeter做微信小程式專案介面測試【案例】JMeter微信小程式
- SpringBoot整合Redis開發RESTful API介面Spring BootRedisRESTAPI
- SpringBoot 2.x 開發案例之整合MinIo檔案服務Spring Boot
- iOS原生專案中整合flutter初試iOSFlutter
- 在Android原生專案中整合FlutterAndroidFlutter
- Android元件化開發案例(融合數10個專案模組)Android元件化
- Python專案開發案例(一)————學生資訊管理系統Python
- 社交app開發|原始碼出售|案例詳情|專案測試APP原始碼