tft每日頭條

 > 科技

 > asp.net關于在線支付的實現過程

asp.net關于在線支付的實現過程

科技 更新时间:2024-11-19 10:43:24

我們在開發網站,公衆号,小程序的時候支付是一個重要環節,筆者打算做一個微信支付的合集,含PC網站微信支付,公衆号的微信支付以及小程序微信支付的詳細介紹。

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)1

今天給大家介紹的是電腦端網站的微信支付要點:

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)2

一、首先去微信官網下載。NETC#版demo,按下面地址下載。

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)3

二、下載完成後,用VS打開解決方案,如下圖,主要目錄有三個,紅色标記

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)4

三、更改lib目錄下的Config.cs的參數設置,改成你自己的相關參數 ,如下圖:

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)5

四、PC端微信支付應該選擇Native支付,Native支付回調鍊接,進微信商戶後台設置,與上面NOTIFY_URL的參數值一緻。

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)6

五、調用統一下單接口,獲得統一下單接口返回的二維碼鍊接 的方法,找到business目錄下的NativePay.cs中加一方法,如下圖:

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)7

六、訂單生成後,根據訂單ID和金額,生成支付二維碼,可以在example 目錄裡創建一個 WenxinPcBar.aspx 文件,生成訂單支付二維碼,

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)8

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)9

七、這樣就生成一個支付的二維碼,如圖所示,注意每次支付成功後,如果你是模拟訂單号,切記每次的訂單号要不一樣,否則創建二維碼為空會報錯。還有傳的金額是整型,你的金額要先格式化為decimal型,然後轉成int型還要乘上100,再傳參數。如下所示protected void Page_Load(object sender, EventArgs e)

{

orderid1 = DNTRequest.GetString("orderId");

m1 = b1.getordermodel(orderid1);

orderid2.Value = orderid1;

if (!IsPostBack)

{

int total_fee = 0;

// decimal d = 111.00m;

//decimal d = 0.01m;

decimal d =decimal.Parse(m1.RealTotal.ToString());

total_fee = Convert.ToInt32(d * 100);

NativePay nativePay = new NativePay();

string body = "購票通";

string attach = "";

string goods_tag = "";

//生成掃碼支付模式二url

string url = nativePay.GetPayUrl(m1.Productsid.ToString(), orderid1, body, attach, total_fee, goods_tag);

ImageUrl = "MakeQRCode.aspx?data=" HttpUtility.UrlEncode(url);

trade_no.Text = orderid1;

money.Text = total_fee.ToString();

}

}

八、掃碼支付成功後,此頁是靜止的,需要自己寫段代碼定時檢測訂單的支付狀态,如果支付成功,就跳轉頁面。

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)10

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)11

九、定時檢測是否支付成功的函數,可以在頁面上寫一個js函數,如下所示,2秒檢測一次,如果支付成功就跳轉支付成功頁。

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)12

再寫一個queryOrderIsPay.ashx文件檢測訂單支付是否成功,代碼如下

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)13

十、微信支付成功後,微信後端會自動調用支付回調鍊接,該鍊接會返回是否成功的相關xml文件,我們需要獲得,business目錄下這個文件 ResultNotify.aspx,可以參考下面的方法

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)14

核心是根據微信後台返回的數據,系統會根據交易訂單号(微信後台訂單号)是否存在并判斷訂單真實性,如果是假就返回訂單不存在或失敗 ,如果存在就返回 return_code 的值是SUCCESS,同時我們需要加上返回商戶訂單号out_trade_no(不同于微信後台交易訂單号transaction_id),然後根據 返回 的訂單号更新訂單的支付成功的狀态。

asp.net關于在線支付的實現過程(PC電腦端網頁微信支付技術要點經驗總結)15

至此支付成功後訂單狀态更新完畢 ,前端二維碼支付頁面内的js函數每隔2秒鐘通過post方式調用queryOrderIsPay.ashx文件來檢測訂單支付是否成功的狀态,來實現二維碼支付頁面的自動跳轉。

以上是PC端網頁微信支付的整個流程,是自己在開發過程中總結出來的,如果你有更好的想法,歡迎讨論!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved