日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在线支付模块小结

發布時間:2023/12/2 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在线支付模块小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述

? ? ?在所有的電子商務網站中都提供了在線支付功能,用戶可以將在網上選購的商品生成訂單后通過網站提供的在線支付功能進行結算。網站開發者可以直接使用銀行提供的接口實現在線支付,也可以使用第三方支付平臺來實現。使用銀行接口需要自行開發程序,而第三方支付平臺幫助網站開發者開發了這樣的程序,網站開發者只需應用該平臺提供的接口進行很少的編碼即可實現。

?

? ? ?使用支付寶平臺提供的接口非常簡單,只需準備一些參數,然后調用提供的方法對這些參數進行簽名并處理,最后通過超鏈接傳遞處理后的數據到支付寶平臺接口即可,至于支付寶端如何與銀行進行連接與網站開發者已沒有關系。所以整個實現過程只需在JSP頁面中完成即可;而對于應用銀行提供的接口實現的在線支付則比較復雜,因為銀行并沒有提供一個完整的程序將參數進行簽名并處理,所以需要開發者自行編寫,這個過程本系統是在一個Servlet中完成的。

二、支付寶接口介紹

? ? ?通過支付寶網站注冊帳號后,會獲取相關接口、示例程序、和使用幫助文檔。在文檔中對支付寶的服務接口通知接口進行了概述及使用接口時需要的參數進行了說明。服務接口用來接收網站開鏈接到支付寶進行的交易請求等,通知接口則是支付寶用來向網站發送通知信息。

? ? 商品可分為實物商品和虛擬商品(如IP電話卡),支付寶也提供針對虛擬商品的在線支付示例程序,這里主要講解的是針對實物商品的在線支付。下面對支付寶“實物商品交易服務”接口時需要的參數進行介紹。

表1 支付寶服務接口參數介紹

參數名

說明

可否為空

協議參數

?

paygateway

https://www.alipay.com/cooperate/gateway.do?

支付接口

service

trade_create_by_buyer

通過該參數確定用戶請求的操作。表中的值表示訂單交易

partner

從用戶帳戶內提取

用戶在支付寶的ID

notify_url

商戶自定義

接收支付寶通知的URL

return_url

商戶自定義

支付寶返回的URL

input_charset

默認為GBK

參數編碼字符集

sign

HTTP請求中傳遞的所有參數(除sign和sign_type以外)按照參數名稱字符升序的順序拼接起來的值

待簽名數據

業務參數

?

subject

商戶自定義

商品名稱

body

商戶自定義

商品描述

out_trade_no

商戶自定義

商戶網站產生的一個唯一訂單號

price

商品單價(訂單總價)

商品單價(訂單總價)

discount

-10000000.00~10000000.00

折扣

show_url

商戶自定義

商品展示網址

quantity

大于0

購買數量

payment_type

1~6的數字。1表示商品購買

支付類型

物流信息

?

logistics_type

VIRTUAL(虛擬物品);POST(平郵);EMS;EXPRESS(其他快遞公司)

物流類型

logistics_fee

0.00~10000000.00,默認為0

物流費用

logistics_payment

SELLER_PAY(由賣家支付物流費用);

BUYER_PAY(由買家支付物流費用)

物流支付類型

買賣雙方信息

?

seller_email

賣家Email

賣家在支付寶注冊的Email或ID,兩者任何一個

三、銀行接口介紹

? ? 銀行通過接口名稱和版本號來通知用戶使用的接口,下面介紹其中一個接口的定義

參數名

說明

可否為空

interfaceName

ICBC_PERBANK_B2C

接口名稱

interfaceVersion

1.0.0.0

接口版本號

orderid

商戶自定義

商戶網站產生的一個唯一訂單號

amount

商戶自定義

訂單金額,以分為單位,不可以為零,必需符合金額標準

curType

001

支付幣種,目前工行只支持使用人民幣(001)支付

merID

由商戶在工行開戶時,由工行告知商戶

商戶代碼

merAcct

商城收費入賬賬號

商城賬號

verifyJoinFlag

1或0

檢驗聯名標志

notifyType

“HS”或“AG”

通知類型,取值“HS”表示在交易完成后實時將通知信息發送給merURL參數指定的URL;取值“AG”表示在交易完成后不通知商戶

merURL

商戶自定義

接收支付結果信息通知程序地址

resultType

0或1

結果發送類型,取值“0”表示無論支付成功或者失敗,銀行都向商戶發送交易通知信息;取值“1”表示只向商戶發送交易成功的通知信息。只有通知方式為“HS”時此值有效

goodsID

商戶自定義

商品編號

? ? ? 表中明確指定的參數值是不可修改的,例如接口名稱和接口版本號,其他一些參數值需要銀行提供或由提供的API接口程序自己來生成。例如訂單簽名數據參數merSignMsg,就是由商戶網站開發者根據銀行提供的指定格式和API接口程序生成的,生成merSignMsg參數的步驟如下:

?

(1)按照以下格式拼接各參數。

? ? ? ?接口名稱的值+接口版本號的值+商城代碼的值+商城賬號的值+通知地址的值+結果發送類型的值+訂單號的值+訂單金額的值+支付幣種的值+通知類型的值+交易日期時間的值+校驗聯名標志的值

(2)通過商戶證書私鑰(user.key)對編碼后的值進行簽名。

(3)對拼接后的值進行BASE64編碼。

?

四、應用支付寶實現在線支付

1.創建鏈接支付寶平臺的支付頁面

? ? ?在生成了訂單編號和訂單總價格后,就可直接通過創建一個頁面完成應用支付寶實現的在線支付。在該頁面將獲取訂單編號和訂單總價格參數,并生成支付寶接口需要的其他參數,例如支付寶合作伙伴id、支付寶安全校驗碼等,然后調用支付寶提供的方法對這些參數進行簽名并處理,最后通過圖片超鏈接傳遞處理后的數據。

關鍵代碼如下:

<%@ page import="com.alipay.util.*"%> <!-- 導入支付寶提供的工具類 -->

<%

//******賬戶信息*******************************************************************

String paygateway = "https://www.alipay.com/cooperate/gateway.do?"; //支付接口

String service = "trade_create_by_buyer";

String sign_type = "MD5";

String out_trade_no = request.getParameter("orderid"); //商戶網站訂單編號

String input_charset = "GBK";

String partner = ""; //支付寶合作伙伴id (賬戶內提取)

String key = ""; //支付寶安全校驗碼(賬戶內提取)

String seller_email = ""; //賣家支付寶帳戶

//******商品信息*******************************************************************

String body = "結算商品來自聚寶商城"; //商品描述

String subject = "聚寶商城提供商品"; //商品名稱

String price = request.getParameter("amount"); //訂單總價

String quantity = "1";

String show_url = "www.sina.com.cn";

String payment_type = "1";

String discount = "0";

//******以下是物流信息和支付寶通知。一般商城不需要通知,則刪除此參數(notify_url),并且在Payment.java里面相應刪除該參數********//

String logistics_type = "EMS";

String logistics_fee = "0.01";

String logistics_payment = "SELLER_PAY";

//支付完成后跳轉返回的網址URL

String return_url = "http://localhost:8080/onLinePayfor01/alipay_return.jsp";

//接收通知的URL,需要的話可取消對該行的注釋

//String notify_url = "http://localhost:8081/jsp_shi_gbk/alipay_notify.jsp";

String ItemUrl = Payment.CreateUrl( paygateway,service,sign_type,out_trade_no,

input_charset,partner,key,seller_email,body,

subject,price,quantity,show_url,payment_type,

discount,logistics_type,logistics_fee,

logistics_payment,return_url); //如果需要接收通知的話,可傳遞notify_url參數,并在Payment.java的CreateUrl()方法的參數中加入notify_url參數。

%>

訂單號: ${param.orderid},您需要支付:¥${param.amount}<br><br>

你選擇的是通過支付寶支付平臺進行網上支付,只有在網上支付成功后,我們才會為您發貨。<br>

請立即支付:<a href="<%=ItemUrl%>"><img src="images/alipay_bwrx.gif" border="0"></a>

?

在獲取支付寶接口的同時支付寶會提供示例程序,開發者只需修改程序中index.jsp頁面的一些參數即可使用。

?

2.創建支付完成后跳轉返回的頁面

? ? ?因為在代碼中設置了return_url參數,所以在支付成功后,請求會從支付寶那邊轉發到return_url參數指定的頁面。在該頁面中要驗證請求是否由支付寶發起,并且驗證訂單信息的正確性,這個過程需要按照支付寶協議來操作,好在支付寶提供的示例程序中也提供了該頁面的實現。下面給出該頁的關鍵代碼:

<%@ page import="com.alipay.util.*"%> <!-- 導入支付寶提供的工具類 -->

<%

String partner = ""; //partner合作伙伴id(必須填寫)

String privateKey = ""; //partner 的對應交易安全校驗碼(必須填寫)

String alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?partner="

+ partner+ "&notify_id="+ request.getParameter("notify_id");

String sign=request.getParameter("sign");

//獲取支付寶ATN返回結果,“true”是正確的訂單信息,“false” 是無效的

String responseTxt = CheckURL.check(alipayNotifyURL);

Map params = new HashMap();

//獲得由支付寶POST 過來的參數并設置到新的params中

Map requestParams = request.getParameterMap();

for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {

String name = (String) iter.next();

String[] values = (String[]) requestParams.get(name);

String valueStr = "";

for (int i = 0; i < values.length; i++){

valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";

params.put(name, valueStr);

}

//對由支付寶POST 過來的參數(不包括sign參數)進行簽名并處理

String mysign = com.alipay.util.SignatureHelper_return.sign(params, privateKey);

//驗證處理后的數據與sign參數值是否相同,并驗證訂單信息的正確性

if (mysign.equals(request.getParameter("sign")) && responseTxt.equals("true") ){

out.println("success");

out.println(params.get("body")); //測試時候用,可以刪除

out.println("顯示訂單信息");

out.println(responseTxt);

}

else

out.println("fail");

%>

?

轉載于:https://www.cnblogs.com/zkn11199/p/5560090.html

總結

以上是生活随笔為你收集整理的在线支付模块小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲成人av一区二区三区 | 五月天狠狠操 | 亚洲激情视频在线播放 | 亚洲午夜精品久久 | 国产在线a | 欧美视频免费看欧美视频 | 国产麻豆成人 | 日日噜噜噜噜久久久精品毛片 | 国产精品无码免费专区午夜 | 99精品久久久久久久婷婷 | 久久狠狠高潮亚洲精品 | 91 高清 在线 制服 偷拍 | 天天爱天天干天天操 | 久久这里只有精品23 | 欧美一级在线观看视频 | 亚洲av无码一区二区乱子伦as | 在线观看特色大片免费网站 | 欲色网站 | 中文字幕第一页亚洲 | 日韩人妻无码精品久久久不卡 | 中文国语毛片高清视频 | 国产精品国产av | 丰满人妻一区二区三区46 | 久久99久久99精品免观看软件 | 亚洲伦理在线 | 麻豆视频免费在线观看 | 日日爱99 | 强行糟蹋人妻hd中文 | 蜜桃无码一区二区三区 | 寡妇高潮一级视频免费看 | 亚洲欧美成人一区二区 | 欧洲一区二区 | 日本wwwxx | 在线观看国产网站 | 亚洲一区二区三区四区av | 免费在线国产视频 | 欧美日韩不卡合集视频 | 亚洲理论片在线观看 | 特级少妇 | 人人干人人看 | 国产精品久久无码一三区 | 色婷综合 | 婷婷五月色综合 | 亚洲国产一区视频 | 亚洲午夜小视频 | av青草| 国语对白精彩对话 | 成人免费毛片色戒 | 久久久不卡国产精品一区二区 | 日韩视频h | 国产第一页精品 | 你懂的欧美 | 高潮一区二区 | 开元在线观看视频国语 | 欧美日韩在线不卡 | 色婷在线 | 中文字幕av免费 | 亚洲一区二区福利 | 在线免费成人 | 天天插日日插 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 伊人影视在线 | 欧美在线观看一区 | 国产视频九色蝌蚪 | 在线免费观看www | 5566在线| 毛片毛片毛片毛片 | 国产一区二区在线免费观看视频 | 亚洲欧美自偷自拍 | 毛片免| 中文字幕在线观看一区二区 | 极品蜜桃臀肥臀-x88av | 亚洲AV无码成人精品区麻豆 | 美女18毛片| 妺妺窝人体色www婷婷 | 成人免费观看视频大全 | 黄色网页免费看 | 国产精品成人免费看片 | 你懂的在线视频网站 | 亚洲天堂一区二区在线 | 一级特黄aa大片 | 国产免费观看视频 | 国产视频h | 一区二区三区国产 | 在线色 | 久热精品在线视频 | 亚洲欧美日韩视频一区 | 91波多野结衣 | 亚洲欧美日韩精品永久在线 | 亚洲成人伊人 | av一二三 | 一区二区小说 | 少妇被按摩师摸高潮了 | 91成人入口 | 国产一级aa大片毛片 | 欧美tickle狂笑裸体vk | 狠狠操狠狠摸 | 欧美日韩电影一区二区 | 91插视频|