1. 程式人生 > >javaweb實現線上支付功能

javaweb實現線上支付功能

1、線上支付概述

什麼是線上支付呢?沒錯,就是在網上花錢!大家一定有過這樣的經歷。但是你可能不太瞭解線上支付的“內情”,下面我們來了解一下!

如果你現在開始經營一個電子商務網站,使用者買了東西一定要支付,你的網站一定要可以連線各大銀行了,然後在各大銀行支付完成後,再返回到你的網站上顯示“支付成功”!

這就是今天我們要做的事情,連線銀行的網銀系統完成支付。說專業一點,我們稱之為“開發線上支付的閘道器”

2、兩種線上支付的方式

線上支付一共有兩種方式:

*電商直接與銀行對接
*電商通過第三方支付平臺與銀行對接

電商直接與銀行對接,這也要銀行同意才行,但可惜的是,銀行很“牛”,不是誰想與它對接都可以的。如果你的電商每日的資金流量夠大,那麼銀行會和你對接,因為客戶支付給電商的錢都存到了銀行的帳戶中!但是如果資金流量小,銀行不會理你的!

當小網站資金量不足時,不能與銀行對接,那麼它們會選擇與第三方支付公司合作。大家也都明白這是些什麼公司,例如:支付寶、易寶、財富通、快錢等公司是國內比較有名的。它們這些公司可以與銀行對接(因為資金夠多),然後小電商與它們對接!但是第三方是要求收費的!第三方一般會收取電商1%的費用,不過不會收客戶的錢。

通過上圖大家可以瞭解到,在銀行的頁面上會顯示出商城名稱、RMB訂單號、訂單時間。。。,這些東西銀行是怎麼知道的,當然是電商傳遞給銀行的。當電商與銀行對接後,電商要給銀行的頁面傳遞銀行頁面需要的引數,所以銀行的頁面才能顯示這些資料!

但是,我們的商城不能只可以對接一家銀行吧!怎麼也要對接BOC、CCB、ABC、ICBC四家吧!不同的銀行需要的對接引數是不相同的,這說明我們在開發時要為不同的銀行寫不同的對接程式碼。這也是直接與銀行對接的缺點!當然與銀行直接對接也有好處,就是安全,沒有手續費!

為不同的銀行開發不同的程式碼(缺點);
安全(優點);
沒有手續費(優點);
小電商銀行不讓對接(缺點)。

上圖中已經說明,客戶在電商的網站上點選確認支付後,會定向到第三方的網站,然後再由第三方與銀行對接。這說明電商要傳遞給第三方引數!再由第三方把引數傳遞給銀行。這種方式的好處是:只需要針對第三方開發即可,而不用再為每家銀行提供引數。為每家銀行提供引數的工作是第三方的任務了。但是,第三方不老可靠的,如果第三方倒閉了,人跑了,那你的錢就沒了。因為客戶支付的錢沒有到你的銀行帳戶中,而是支付到了第三方的銀行帳戶中,而你是在第三方有一個帳戶。而且第三方還要收手續費,一般是1%,這可不是小數字啊(真黑)。

3、通過第三方線上支付規則

電商想在第三方註冊商戶,需要向第三方提供ICP認證。ICP經營許可證是根據國家《網際網路管理辦法規定》,經營性網站必須辦理的網站經營許可證,沒有就屬於非法經營。

我們不可能因為練習就去辦理ICP!所以我們無法在第三方註冊商戶。不過我們已經有現成的在易寶註冊的商戶,所以這一步就可以忽略了。

當你在易寶註冊成功後,易寶會給你如下幾樣東西:

   在易寶的開戶賬號(即商戶編碼):10001126856
   易寶接入規範:一個chm檔案
   對稱加密演算法類:PaymentUtil.java
   金鑰:69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl
在易寶接入規範中,我們可以查詢到易寶的支付閘道器,其實就是一個URL,用來與易寶對接的一個網址:https://www.yeepay.com/app-merchant-proxy/node

在易寶接入規範中,還可以查詢到易寶要求的引數,在電商與易寶對接時需要給支付閘道器傳遞這些引數:

這些引數需要追加到URL後面。

但是要注意,這些引數的值需要加密。加密的金鑰和加密演算法易寶都會提供!

其中p8_Url表示當支付成功後,返回到電商的哪個頁面。這說明我們需要寫一個顯示結果的頁面。第三方在支付成功後,會重定向到我們指定的返回頁面,而且還會帶給我們一些引數,我們的頁面需要獲取這些引數,顯示在頁面中。下面是第三方返回的引數:

4、開發第三方線上支付系統

步驟:

index.jsp頁面:一個表單,提交到BuyServlet,表單項有:訂單編號、付款金額、選擇銀行
BuyServlet:獲取表單資料,準備連線第三方閘道器。因為在index.jsp頁面中只給出3個引數,而第三方需要的引數有N多,頁面沒有給出的引數由BuyServlet補充。而且引數還需要加密,這也需要在BuyServlet中完成
BackServlet:當用戶支付成功後,第三方會重定向到我們指定的返回頁面,我們使用BackServlet作為返回頁面,它用來接收第三方傳遞的引數,顯示在頁面中

因為已經有了在易寶的註冊商號,所以我們就不用自己去註冊商號了。所以這裡使用易寶做為第三方支付平臺來測試。因為我本人沒有電商(必須通過ICP認證的電商),所以也不能在第三方註冊商號。

我們現在使用的易寶商號是由傳智播客提供的,巴巴運動網在易寶註冊的商號。所以在測試時支付的錢都給了巴巴運動網在易寶註冊的商號了。

第一步:index.jsp

?
12345678910111213141516<form action="" method="post">訂單號:<input type="text" name="p2_Order"/><br/>金 額:<input type="text" name="p3_Amt"/><br/>選擇銀行:<br/><input type="radio" name="pd_FrpId" value="ICBC-NET-B2C"/>工商銀行<img src="bank_img/icbc.bmp" align="middle"/><input type="radio" name="pd_FrpId" value="BOC-NET-B2C"/>中國銀行<img src="bank_img/bc.bmp" align="middle"/><br/><br/><input type="radio" name="pd_FrpId" value="ABC-NET-B2C"/>農業銀行<img src="bank_img/abc.bmp" align

相關推薦

javaweb實現線上支付功能

1、線上支付概述什麼是線上支付呢?沒錯,就是在網上花錢!大家一定有過這樣的經歷。但是你可能不太瞭解線上支付的“內情”,下面我們來了解一下!如果你現在開始經營一個電子商務網站,使用者買了東西一定要支付,你的網站一定要可以連線各大銀行了,然後在各大銀行支付完成後,再返回到你的網站

java 線上支付功能實現

實現的兩種方法 1 直接與銀行對接:   交易比較安全,適合資金流量比較大的企業,這種方案適合於,每月結算金額百萬以上的.                            但開發工作量比較大,而且銀行會不定期升級交易系統,每個銀行的介面都不同,交納的費用也不低. 2 通過中間公司 間接與銀行對接:  

【視訊】詳解小程式wx.requestpayment用法,實現小程式線上支付功能

開發小程式商城,外賣小程式,銷售型小程式等,具有線上支付功能的,都會使用wx.requestpayment()這個介面。好多學員反饋說這個介面很難,今天子恆老師跟你分享一下,怎麼使用wx.requestpayment實現微信支付。一、 使用wx.requestpayment實

JavaWeb--使用Websocket實現線上聊天功能

package websocket.chat; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpSession; import javax.web

線上支付功能實現程式碼

我們都知道,在現在的網站中,基本上都會有支付功能,線上支付作為一個潮流已是現代化網站的必備功能模組,那麼幾天我就分享一下如果來做這個線上支付功能。 線上支付一般來說有兩種實現方式,一種是呼叫各個銀行提供的介面,另一種是使用第三方整合好的支付功能。兩種方式各有優劣

【SSH網上商城專案實戰23】完成線上支付功能

    轉自: https://blog.csdn.net/eson_15/article/details/51464415  上一節我們做好了支付頁面的顯示,從上一節支付頁面顯示的jsp程式碼中可以看出,當用戶點選

javaWeb實現郵箱驗證功能(二)

上篇寫的實現基本上是一個工具類,並沒封裝成下圖這樣方式(梨視訊註冊介面),現在開始完善上篇的java郵箱啟用驗證功。 java郵箱驗證地址:https://blog.csdn.net/BlackPlus28/article/details/85044068 -----------------

javaweb實現記住密碼功能

具體思路是,如果使用者勾選了記住密碼那個框,那麼肯定有是否勾選框的一個標誌引數傳遞到後臺 根據引數,決定是否將使用者名稱和密碼存到cookie中 String username = "llllll"; String password = "2323232";

JavaWeb實現分頁功能

一、分頁的思路首先我們得知道寫分頁程式碼時的思路,保持思路清晰,有步驟的進行,才能行雲如水。先來看看分頁的效果這就是一個分頁導航,其中能得到的資料有totalRecord:總共員工數,資料庫中總的記錄數,這裡有55條totalPage:總頁數,11頁pageSize:每頁顯示

讓你的微信小程式具有線上支付功能

最近需要在微信小程式中用到線上支付功能,於是看了一下官方的文件,發現要在小程式裡實現微信支付還是很方便的,如果你以前開發過服務號下的微信支付,那麼你會發現其實小程式裡的微信支付和服務號裡的開發過程如出一轍,下面我就具體說一下小程式裡微信支付的開發流程和注意點。 1.

微信小程式具有線上支付功能

最近需要在微信小程式中用到線上支付功能,於是看了一下官方的文件,發現要在小程式裡實現微信支付還是很方便的,如果你以前開發過服務號下的微信支付,那麼你會發現其實小程式裡的微信支付和服務號裡的開發過程如出一轍,下面我就具體說一下小程式裡微信支付的開發流程和注意點。 1.開通微信支付和微信商戶號 這個過程就和

基於vue,websocket實現線上聊天功能

    最近專案中一直在使用vue作為前端框架,可是用到的只有很少一部分的功能,特別是vuex,為了更加深入瞭解vue框架,在工作之餘開發了一款基於vue的線上聊天工具,一下是部分功能效果圖1.登入註冊2.新增好友&國際化3.訊息重發歡迎star

JS實現線上ps功能

功能介紹 本系統是基於fabric.js實現的canvas版圖片,文字編輯器,支援對圖片的放大,縮小,旋轉,鏡面翻轉,拖動,顯示/隱藏圖層,刪除圖層,替換圖層等操作,對文字支援修改文字內容,顏色,字型,加粗,斜體,下劃線,背景色等,同時支援圖片已有的操作,拖動圖層有輔助線功能,可對畫布做放大縮小功能,多操作

微信小程序 支付功能(前端)的實現

pen 回退 ole pack spa session 統一支付 ges 應用 只提供微信小程序端代碼: 1 var app = getApp(); 2 Page({ 3 data: {}, 4 onLoad: function (options) {

微信小程序實現支付功能

註冊 nat XML 方法 一個 結果 intra fun abcdefg 小程序支付,沒有封裝支付代碼:直接上一段可用的流程代碼吧:微信小程序支付官網文檔有詳細的說明,這裏我就不再贅述啦:客戶端js: wx.request({ url:‘https://www.xxxx

微信小程序 支付功能 服務器端(TP5.1)實現

ces 形式 當前 單位 class private cda 庫存 vat 首先下載微信支付SDK ,將整個目錄的文件放在 /application/extend/WxPay 目錄下 在使用SDK之前我們需要對 WxPay.Config.php 進行配置 <?ph

Spring MVC+Spring+Mybatis實現支付支付功能(圖文詳解)

通用 ltr 由於 題解 urn ipa 源代碼 ram abi 前言 本教程詳細介紹了如何使用ssm框架實現支付寶支付功能。本文章分為兩大部分,分別是「支付寶測試環境代碼測試」和「將支付寶支付整合到ssm框架」,詳細的代碼和圖文解釋,自己實踐的時候一定仔細閱讀相關文

ThinkPHP5.0 實現 app支付支付功能

napi security rsa 賬號 sdk n) success format 修改 https://mp.weixin.qq.com/s/EbfOmEGN93QAnrZOKVP0Vg 先來個效果圖 做這個支付寶支付我總共用到了三個控制器: 1:支付寶支付控制器

【轉】微信小程序實現微信支付功能(可用)

arr 必須 enc red use sam func 結束 單表 原博: https://blog.csdn.net/fredrik/article/details/79697963 微信小程序實現微信支付功能 直接把裏面的參數替換成你的就

spring boot項目之微信支付功能實現詳細介紹

tab 流程 invalid body 正方形 無法 數據 fmt -s 對接微信支付功能主要有以下幾個步驟, 而其第一個關鍵點就是獲取OpenID,在這裏介紹兩種獲取方式: 一、微信授權 微信網頁授權 如果用戶在微信客戶端中訪問第三方網頁,公