.net 站點整合【先鋒支付】線上充值實現簡單整理
.net 站點整合【先鋒支付】線上充值實現簡單整理
其實和其他支付通道一樣,提交充值申請,監測回撥即可
1、提交線上支付
string ucfpayTotalFee = ObjectHandlers.Get("ucfpayTotalFee"); string rechangeType = ObjectHandlers.Get("rechangeType"); string url = ucfpayPostURL + "?"; string merKey = memberKey; string service = "REQ_GET_TOKEN"; string version = versionID; string secId = secretId; string merchantId = memberchantId; string reqId = DateTime.Now.ToString("yyyyMMddHHmmssffff", DateTimeFormatInfo.InvariantInfo); merchantNo = reqId; string[] keykks = Request.Form.AllKeys; Hashtable paramPar = new Hashtable(); paramPar.Add("service", service); paramPar.Add("version", version); paramPar.Add("secId", secId); paramPar.Add("merchantId", merchantId); paramPar.Add("reqId", reqId); string paramString = UcfpayUtils.sortParam(paramPar); if (paramString.StartsWith("&")) { paramString = paramString.Substring(1); } url = url + paramString; paramString = paramString + merKey; string sign = UcfpayUtils.md5Sign(paramString.ToString()); url = url + "&sign=" + sign; //獲取先鋒支付安全token令牌,每次請求唯一token string token = UcfpayUtils.getToken(url); singleToken = token; if (!String.IsNullOrEmpty(token)) { //把請求引數打包成陣列,重新生成sign,提交到收銀臺支付請求 Hashtable paramPar2 = new Hashtable(); paramPar2.Add("service", "TO_UCF_CASHIER"); paramPar2.Add("secId", secId); paramPar2.Add("version", version); paramPar2.Add("token", token); paramPar2.Add("merchantId", merchantId); paramPar2.Add("merchantNo", merchantNo); //每次訂單號 paramPar2.Add("source", "1"); //1、pc 2、移動端 paramPar2.Add("productType", "WE"); paramPar2.Add("payerId", ""); paramPar2.Add("amount", (TranDataType.ObjToInt(ucfpayTotalFee) * 100).ToString()); //付款金額 paramPar2.Add("transCur", "156");//156人民幣 paramPar2.Add("accountType", "3"); //1、借記卡 2、信用卡 3、借貸不區分 paramPar2.Add("productName", "諸葛投資線上支付"); paramPar2.Add("productInfo", "諸葛投資線上支付"); paramPar2.Add("returnUrl", ucfpayURL + "/ucfpay/ucfpayReturnUrl"); paramPar2.Add("noticeUrl", ucfpayURL + "/ucfpay/ucfpayNoticeUrl"); paramPar2.Add("expireTime", ""); paramPar2.Add("memo", ""); string paramString2 = UcfpayUtils.sortParam(paramPar2); if (paramString2.StartsWith("&")) { paramString2 = paramString2.Substring(1); } string merKey2 = memberKey; paramString2 = paramString2 + merKey2; //生成本次訂單支付提交sign標識 string sign2 = UcfpayUtils.md5Sign(paramString2.ToString()); paramPar2.Add("sign", sign2); //組合提交表單資料 StringBuilder sbHtml = new StringBuilder(); sbHtml.Append("<form id='ucfpaysubmit' name='ucfpaysubmit' action='" + ucfpayPostURL + "' method='post'>"); foreach (DictionaryEntry temp in paramPar2) { sbHtml.Append("<input type='hidden' name='" + temp.Key + "' value='" + temp.Value + "'/>"); } //submit按鈕控制元件請不要含有name屬性 sbHtml.Append("<input type='submit' value='確認' style='display:none;'></form>"); sbHtml.Append("<script>document.forms['ucfpaysubmit'].submit();</script>"); //新增充值記錄 return sbHtml.ToString(); }2、非同步回撥
string merchantId = String.IsNullOrEmpty(ObjectHandlers.Post("merchantId")) ? "" : ObjectHandlers.Post("merchantId").ToString(); string merchantNo = String.IsNullOrEmpty(ObjectHandlers.Post("merchantNo")) ? "" : ObjectHandlers.Post("merchantNo").ToString(); string amount = String.IsNullOrEmpty(ObjectHandlers.Post("amount")) ? "" : ObjectHandlers.Post("amount").ToString(); string transCur = String.IsNullOrEmpty(ObjectHandlers.Post("transCur")) ? "" : ObjectHandlers.Post("transCur").ToString(); string memo = String.IsNullOrEmpty(ObjectHandlers.Post("memo")) ? "" : ObjectHandlers.Post("memo").ToString(); string tradeNo = String.IsNullOrEmpty(ObjectHandlers.Post("tradeNo")) ? "" : ObjectHandlers.Post("tradeNo").ToString(); string status = String.IsNullOrEmpty(ObjectHandlers.Post("status")) ? "" : ObjectHandlers.Post("status").ToString(); string tradeTime = String.IsNullOrEmpty(ObjectHandlers.Post("tradeTime")) ? "" : ObjectHandlers.Post("tradeTime").ToString(); string sign = String.IsNullOrEmpty(ObjectHandlers.Post("sign")) ? "" : ObjectHandlers.Post("sign").ToString(); Hashtable paramPar = new Hashtable(); paramPar.Add("merchantId", merchantId); paramPar.Add("merchantNo", merchantNo); paramPar.Add("amount", amount); paramPar.Add("transCur", transCur); paramPar.Add("memo", memo); paramPar.Add("tradeNo", tradeNo); paramPar.Add("status", status); paramPar.Add("tradeTime", tradeTime); string paramString = UcfpayUtils.sortParam(paramPar); if (paramString.StartsWith("&")) { paramString = paramString.Substring(1); } string merKey = memberKey; paramString = paramString + merKey; string mysign = UcfpayUtils.md5Sign(paramString.ToString()); if (mysign.Equals(sign)) { #region 業務處理 if (status.Equals("S")) { return "SUCCESS"; } return ""; #endregion } else { return "SIGN_ERROR";//簽名錯誤 }3、return 回撥,同2
內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。
相關文章
- 實現微信內建瀏覽器線上支付簡單介紹瀏覽器
- android 整合微信支付和支付寶支付其實很簡單Android
- Laravel 整合 EasyAlipay 實現支付寶手機網站 Wap 支付Laravel網站
- 一個簡單的 Laravel 站點設定實現Laravel
- 網站如何整合支付寶支付介面網站
- django 網站實現簡單分頁Django網站
- Thinkphp各大支付平臺線上支付整合原始碼PHP原始碼
- 單點登入原理與簡單實現
- java實現簡單的單點登入Java
- nginx Win下實現簡單的負載均衡(2)站點共享SessionNginx負載Session
- 簡單實現點選回到頂部
- SpringBoot(二)整合支付寶 - 電腦網站支付和查詢賬單Spring Boot網站
- 【ASP NET】UCenter實現多站點同步註冊
- 超簡單整合ML kit 實現聽寫單詞播報
- 用python實現簡單的線上翻譯程式Python
- netty 實現簡單的rpc呼叫NettyRPC
- 簡單實現.NET Hook與事件模擬Hook事件
- 一個簡單輕便的移動支付整合庫FastPayAST
- 刀鋒伺服器的簡單介紹及其優點伺服器
- PayPal支付整合到自己Web網站Web網站
- 超簡單!原生SwipeRefreshLayout實現首頁下拉重新整理
- 【ASP NET】UCenter實現多站點同步登入退出
- “人類先鋒”點亮物聯網燈塔
- 呼叫支付介面,實現直播帶貨系統原始碼的線上支付原始碼
- Java使用Netty實現簡單的RPCJavaNettyRPC
- Netty(二) 實現簡單Http伺服器NettyHTTP伺服器
- 超簡單整合HMS ML Kit 實現parental control
- Lumen/Laravel 整合 GatewayWorker (Workerman),實現簡單的聊天系統.LaravelGateway
- SpringBoot整合MongoDB(實現一個簡單快取)Spring BootMongoDB快取
- 超簡單整合 HMS ML Kit 實現最大臉微笑抓拍
- 簡單實現帶節點的進度條
- 守望先鋒 UI 庫UI
- 線上整合開發環境 Compilr 的簡單體驗開發環境
- 簡析《守望先鋒》塑造玩法策略性的努力
- 簡單的Java實現Netty進行通訊JavaNetty
- jQuery實現的簡單焦點圖特效實現過程詳解jQuery特效
- 重新整理 .net core 實踐篇—————配置系統之簡單配置中心[十一]
- ios10支付寶如何提現 ios10支付寶無法充值提現怎麼辦iOS