① java開發微信掃碼支付,怎麼做測試,公眾賬號ID,商戶號這些怎麼來
一、直接接入微信支付二、通過微信二次開發商的平台接入支付功能,三、在微信平台中加入微網頁,四、通過第三方APP收款,
② Java端怎麼實現模擬支付
1、這是一個模擬支付的流程圖
2、如果你要用java實現,要分成前後端,前端可以找一個前端框架(如bootstrap),後端用springboot
3、如果你對這些技術不熟悉,可以直接在github上搜索一個web項目(基本上就都配置好了),自己改一下就行
③ 怎麼用java調用微信支付介面
java調用微信支付介面方法:
RequestHandler requestHandler = new RequestHandler(super.getRequest(),super.getResponse());
//獲取token //兩小時內有效,兩小時後重新獲取
Token = requestHandler.GetToken();
//更新token 到應用中
requestHandler.getTokenReal();
System.out.println("微信支付獲取token=======================:" +Token);
//requestHandler 初始化
requestHandler.init();
requestHandler.init(appid,appsecret, appkey,partnerkey, key);
// --------------------------------本地系統生成訂單-------------------------------------
// 設置package訂單參數
SortedMap<String, String> packageParams = new TreeMap<String, String>();
packageParams.put("bank_type", "WX"); // 支付類型
packageParams.put("body", "xxxx"); // 商品描述
packageParams.put("fee_type", "1"); // 銀行幣種
packageParams.put("input_charset", "UTF-8"); // 字元集
packageParams.put("notify_url", "http://xxxx.com/xxxx/wxcallback"); // 通知地址 這里的通知地址使用外網地址測試,注意80埠是否打開。
packageParams.put("out_trade_no", no); // 商戶訂單號
packageParams.put("partner", partenerid); // 設置商戶號
packageParams.put("spbill_create_ip", super.getRequest().getRemoteHost()); // 訂單生成的機器IP,指用戶瀏覽器端IP
packageParams.put("total_fee", String.valueOf(rstotal)); // 商品總金額,以分為單位
// 設置支付參數
SortedMap<String, String> signParams = new TreeMap<String, String>();
signParams.put("appid", appid);
signParams.put("noncestr", noncestr);
signParams.put("traceid", PropertiesUtils.getOrderNO());
signParams.put("timestamp", timestamp);
signParams.put("package", packageValue);
signParams.put("appkey", this.appkey);
// 生成支付簽名,要採用URLENCODER的原始值進行SHA1演算法!
String sign ="";
try {
sign = Sha1Util.createSHA1Sign(signParams);
} catch (Exception e) {
e.printStackTrace();
}
// 增加非參與簽名的額外參數
signParams.put("sign_method", "sha1");
signParams.put("app_signature", sign);
// api支付拼包結束------------------------------------
//獲取prepayid
String prepayid = requestHandler.sendPrepay(signParams);
System.out.println("prepayid :" + prepayid);
// --------------------------------生成完成---------------------------------------------
//生成預付快訂單完成,返回給android,ios 掉起微信所需要的參數。
SortedMap<String, String> payParams = new TreeMap<String, String>();
payParams.put("appid", appid);
payParams.put("noncestr", noncestr);
payParams.put("package", "Sign=WXPay");
payParams.put("partnerid", partenerid);
payParams.put("prepayid", prepayid);
payParams.put("appkey", this.appkey);
//這里除1000 是因為參數長度限制。
int time = (int) (System.currentTimeMillis() / 1000);
payParams.put("timestamp",String.valueOf(time));
System.out.println("timestamp:" + time);
//簽名
String paysign ="";
try {
paysign = Sha1Util.createSHA1Sign(payParams);
} catch (Exception e) {
e.printStackTrace();
}
payParams.put("sign", paysign);
//拼json 數據返回給客戶端
BasicDBObject backObject = new BasicDBObject();
backObject.put("appid", appid);
backObject.put("noncestr", payParams.get("noncestr"));
backObject.put("package", "Sign=WXPay");
backObject.put("partnerid", payParams.get("partnerid"));
backObject.put("prepayid", payParams.get("prepayid"));
backObject.put("appkey", this.appkey);
backObject.put("timestamp",payParams.get("timestamp"));
backObject.put("sign",payParams.get("sign"));
String backstr = dataObject.toString();
System.out.println("backstr:" + backstr);
return backstr;
====================到此為止,預付款訂單已生成,並且已返回客戶端====================
//坐等微信伺服器通知,通知的地址就是生成預付款訂單的notify_url
ResponseHandler resHandler = new ResponseHandler(request, response);
resHandler.setKey(partnerkey);
//創建請求對象
//RequestHandler queryReq = new RequestHandler(request, response);
//queryReq.init();
if (resHandler.isTenpaySign() == true) {
//商戶訂單號
String out_trade_no = resHandler.getParameter("out_trade_no");
System.out.println("out_trade_no:" + out_trade_no);
//財付通訂單號
String transaction_id = resHandler.getParameter("transaction_id");
System.out.println("transaction_id:" + transaction_id);
//金額,以分為單位
String total_fee = resHandler.getParameter("total_fee");
//如果有使用折扣券,discount有值,total_fee+discount=原請求的total_fee
String discount = resHandler.getParameter("discount");
//支付結果
String trade_state = resHandler.getParameter("trade_state");
//判斷簽名及結果
if ("0".equals(trade_state)) {
//------------------------------
//即時到賬處理業務開始
//------------------------------
System.out.println("----------------業務邏輯執行-----------------");
//——請根據您的業務邏輯來編寫程序(以上代碼僅作參考)——
System.out.println("----------------業務邏輯執行完畢-----------------");
System.out.println("success"); // 請不要修改或刪除
System.out.println("即時到賬支付成功");
//給財付通系統發送成功信息,財付通系統收到此結果後不再進行後續通知
resHandler.sendToCFT("success");
//給微信伺服器返回success 否則30分鍾通知8次
return "success";
}else{
System.out.println("通知簽名驗證失敗");
resHandler.sendToCFT("fail");
response.setCharacterEncoding("utf-8");
}
}else {
System.out.println("fail -Md5 failed");
④ JAVA基礎入門教程 -
第一階段:Java語言基礎
★ Java語言基礎
1、面向對象思維JAVASE
2、(類載入機制與反射,annotation,泛型,網路編程,多線程,IO,異常處理,常用API,面向對象,JAVA編程基礎)
3、Java8新特性
JAVA戰狼班第二階段:資料庫
★ 資料庫
1、Oracle(SQL語句、SQL語句原理、SQL語句優化、表、視圖
2、序列、索引、Oracle數據字典、Oracle 資料庫PL/SQL開發
3、資料庫設計原則、 MySQL 、 JDBC
第三階段:Web基礎
★ Web基礎
1、HTML5(H5)基本文檔結構、鏈接、列表、表格、表單;
2、CSS 基礎語法、盒子模型、浮動布局、定位;
3、JavaScript語言基礎、DOM 編程、事件模型等),JQuery,AJAX框架,XML,BootStrap組件
第四階段:Java Web技術和主流框架
★ Java Web技術和主流框架
1、JSP&Servlet、struts2,hibernate4,spring4,JPA,maven
2、SpringData,SpringMVC,MyBatis,SpringSecurity,shiro,Nginx
第五階段:Linux
★ Linux
1、Linux安裝、熟悉Linux的基礎命令、vi編輯器的使用、awk和sed命令使用、用戶和組
2、文件及目錄許可權管理、使用ACL進行高級訪問控制、網路配置和軟體包安裝、啟動流程和服務管理
3、系統監控和日誌管理、進程管理和計劃任務、ssh遠程登錄、shell基礎和shell腳本。
第六階段:大數據技術(Hadoop和Spark)
★ 大數據技術(Hadoop和Spark)
1、Hadoop (Hadoop基礎和環境搭建,HDFS體系結構,MapRece;Hadoop的集群模式、HDFS聯盟,利用ZooKeeper來實現Hadoop集群的HA(高可用性)功能
2、Yarn的任務調度機制,Apache Hive,Pig數據處理,集成Hadoop和Sqoop
3、Flume以及Apache Kafka來實現數據的交換,安裝部署HBase,Storm)
4、Scala 語言(Scala環境搭建、Scala基礎語法、模式匹配、重載與構造器、Map與rece、元組、繼承、StringContext,Option Some None,Tuple;集合方法和運算,future 對象同步處理和非同步處理返回結果)
5、Spark(Spark搭建,Spark-shell 的使用,Spark-submit 提交應用, Spark的內核設計和實現,並對內核中的實現架構、運行原理進行詳細的講解;Spark生態體系中的各個組件,包括:Spark Core,Shark,Spark SQL和Spark Streaming等等)
第七階段:項目
★ 項目
1、China-UCSP 項目 SSM(Spring+SpringMVC+MyBatis)
2、用戶關系管理系統 S2SH+Maven+Nodejs+MySQL技術實戰開發
3、電子商務交易平台 S2SH+Maven+Shiro+Oracle
⑤ Java PayPal支付介面,疑問求解答
Paypal IPN介面開發小結最近終於搞定了該死的Paypal ipn,特地在此留下點東西備忘。所以paypal ipn(Instant Payment Notification),就是Paypal開發的一種能主動通知第三方賣家系統交易狀態的一種機制。IPN的原理很簡單,就是當產生了一個交易之後,交易狀態發生變化時,如用戶已經付款、或者退款、撤銷時,Paypal利用常用的HTTP POST方式,將交易的一些變數提交給網站的某個頁面(稱之為IPN Handler),當這個頁面接受到請求時候,將這些數據原封不動加上一個指示驗證的cmd=_notify-validate,POST回Paypal的介面地址,如果數據正確,那麼Paypal返回字元串VERIFIED,否則為INVALID,如果結果為VERIFIED,那麼你的程序就可以使用這些數據進行操作。但代碼的調試是一件很痛苦的事情,因為作為第三方開發人員,不可能開兩個帳號,每次測試還要之間交易一些錢,所以Paypal專門開發了Sandbox給開發人員進行開發,首先到 https://developer.paypal.com/ 注冊一個開發帳號,好了之後再進入Sandbox建立測試用的Paypal虛擬帳號(至少應該建立一個Business的和一個Personal的),這種賬號注冊方法和Paypal的流程一樣,信息可以是假的,包括銀行帳號、信用卡(其實Paypal Sandbox會自動生成一些隨機的號碼)。接下來需要激活Paypal Sandbox的虛擬帳號,注意,這里不管你在Paypal Sanbox注冊時填什麼郵件地址,有任何發送到虛擬帳號所填郵箱的郵件都存會在開發帳號的管理界面中的Email頁(導航欄上有)中。登錄Sandbox的虛擬Paypal環境,還需要驗證虛擬帳號的銀行,這里可以隨便填,然後通過Add Funds來給賬戶充值(想填多少填多少)。然後,還需要激活IPN的選項,在Business的那個賬戶的Profile設置頁面中,點擊,然後點擊Edit按鈕,打開IPN,這里如果你使用的是固定的IPN Handle,可以直接將地址填入。接下來,我們測試的時候,應該將Paypal介面的地址設置為 https://www.sandbox.paypal.com/cgi-bin/webscr最後基本的流程為:用戶在我們的網站上選擇商品、放入購物車,然後檢查准備支付 網站根據購物車中的商品,生成Paypal的支付表單(也是提交到上面IPN用的Paypal介面地址),包含了此次交易的一些信息(下次會專門找機會解釋一下)。並在自己的資料庫中生成一張訂單記錄。 Paypal在Session中記錄下這些交易信息 用戶用Paypal賬戶登錄Paypal(Sandbox用Sandbox的虛擬帳號),復查明細,點擊Pay按鈕 Paypal進行交易處理,如果我們的Paypal收款帳號在接受帳款上沒有什麼問題(沒有特別的需要在界面上「Accept」的地方),交易完成,那麼Paypal會發送一個IPN,並發送提示郵件。 我們IPN Handler接受到信息,首先向Paypal進行校驗,如果信息正確,然後根據信息和自己資料庫中進行比對,如果無誤,可以將支付信息保存,並修改訂單狀態。 然後Paypal會顯示一個界面表示交易完成,此時如果用戶點擊「Return」按鈕,Paypal會將用戶送回我們網站指定地點。 我們網站迎接用戶回來,向用戶表示感謝,並進行提醒,給出訂單號等等。 整個流程基本如下,不過其中有很多要注意的地方:我們看到了,介面地址是https開頭的,也就是要求使用SSL進行連接,其實Paypal Sandbox可以使用http,但是最後實際的Paypal介面,不支持http協議,所以如果你用php寫IPN Handler腳本的話,在驗證信息的代碼部分,如果簡簡單單使用fopen、HTTP_Request之類的工具是沒用的,PHP的socks庫不支持SSL,應該使用curl,有兩種方法,一個是使用PHP擴展中的libcurl,Paypal官方發布的SDK中便是使用的這個方法,但Paypal的SDK非常復雜,如果想自己寫,可以使用Snoopy,一個簡單實用的PHP請求庫(它自己說是模擬了瀏覽器的行為),而它使用的是Curl的可執行文件,通過管道獲得結果,而非php的libcurl,所以自己cURL的主頁上下載一個支持SSL的編譯版本,可能還需要安裝OpenSSL,不過對於Linux系統,可能應該會都帶。 在支付表單中,可以自己設置notify_url欄位,來指定此次交易的信息應該發送到哪個地方,這樣就可以覆蓋在Profile中我們的設置,另外,這個欄位要進行urlencode。 我們得到的IPN信息中,status對應的便是交易狀態,如Complete表示完成,首字母大寫,而驗證結果則是VERIFIEY或者INVALID,全部大寫,具體的內容,可以查看Paypal官方的文檔訂單管理整合指南。
⑥ java支付介面怎麼寫
調用支付寶支付介面說明
⑦ java怎麼實現在線支付功能有這方面的書嗎
1、如果你要做支付功能,技術上很簡單,支付寶有提供介面,改兩個參數就可以用了,非常簡單。2、但是你得網站如果要上線盈利的話,就麻煩了。3、首先你的支付寶收款的賬號要進行商家認證,具體怎麼認證我就不知道了,當時是我老闆認證的,我就知道這個商家實名認證比個人實名認證麻煩的多。認證之後支付寶會給你兩個參數,一個是合作身份者ID,以2088開頭由16位純數字組成的字元串,一個是商戶的私鑰。你拿到這兩個參數之後去下載支付寶提供的介面程序,把這兩個參數填進去就好了,別的都不用動。當然訂單價格和訂單號的生成規則你可以自己寫。總之支付寶的介面開發的非常完善,而且傻瓜式操作,一看就懂。4、然後你的網站域名要備案,申請ICP證,經營性ICP(為用戶提供有償的信息服務)需要你注冊公司的,而且營業執照很麻煩,我老闆現在還在。如果你只是想加個功能,看看介面怎麼用,那簡單。但是你要做正規的網站用介面盈利的話,技術上實現很簡單,把程序包下下來,然後改兩個參數,但是合法經營的話需要的手續很多。
⑧ 如何用java實現applepay對接
Xcode 6.1提供了非常方便的界面來設置Apple Pay。第一步先修改target為iOS 8.1,然後在項目Capabilities里將Apple Pay設置為on,這將自動導入需要的庫文件,然後添加一個許可權文件並設置,最後修改或創建你的App ID。
你可能會注意到上面沒有有效的Merchant ID,我們需要創建一個,訪問蘋果iOS 開發者中心的位於Identifiers > Merchant ID的頁面。
然後隨著流程指引,創建一個Merchant ID並注冊它。
現在,我們需要給Merchant ID添加一個證書簽名請求(Certificate Signing Request),以便加密支付令牌來保證其安全性。為達到這個目的,導航至你的Merchant ID,並點擊Edit按鈕來修改它。
現在,你需要創建一個證書。點擊下面的Create Certificate按鈕,並跟隨蘋果的流程指引完成創建。
現在Merchant ID設置好了,你可以回到Xcode並刷新Merchant ID區塊,如果一切正常,你應當看到剛創建的ID出現在列表上。將它選中,然後可以進入下一部分。
編寫代碼
我們在Github上提供了一個集成Apple Pay的示例項目:cjbeauchamp/ApplePayDemo ,許可權文件和App設置文件已經剝離出去了,可以放心將它添加到你自己的項目里。下面我們將討論一些開發中的要點。
設置項目
Apple Pay使用了PassKit框架,所以你需要在適當的文件里導入頭文件:
#import
你還需要接收Apple Pay處理信息的回調,所以確保將委託添加到接收類上:
@interface ViewController : UIViewController
創建支付請求
首先你需要確認設備是否支持Apple Pay支付,確認的代碼是:
if([ canMakePayments]) {
...
}
在上面的代碼塊里,你能使用PKPayment類來創建支付請求。下面是相應的代碼,你需要將其中一些信息修改成自己的,比如merchantIdentifier需要與你之前創建的Merchant ID相匹配。
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
request.countryCode = @"US";
request.currencyCode = @"USD";
request.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
request.merchantCapabilities = PKMerchantCapabilityEMV;
request.merchantIdentifier = @"merchant.com.myMerchantID";
添加物品到支付頁
你可以使用PKPaymentSummaryItem來創建物品並顯示,這個對象描述了一個物品和它的價格,數組最後的對象必須是總價格。
PKPaymentSummaryItem *widget1 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 1" amount:[NSDecimalNumber decimalNumberWithString:@"0.99"]];
PKPaymentSummaryItem *widget2 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 2" amount:[NSDecimalNumber decimalNumberWithString:@"1.00"]];
PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"Grand Total" amount:[NSDecimalNumber decimalNumberWithString:@"1.99"]];
request.paymentSummaryItems = @[widget1, widget2, total];
顯示認證視圖
最後,顯示由PassKit框架提供的view controller,接下來它將自動處理認證。
*paymentPane = [[ alloc] initWithPaymentRequest:request];
paymentPane.delegate = self;
[self presentViewController:paymentPane animated:TRUE completion:nil];
實現委託方法
被請求的委託方法是被認證成功和認證完成兩個事件調用的。是否解除view controller,以及讓用戶知道認證是否成功都取決於你。方法的簽名如下:
- (void):didAuthorizePayment:completion:
- (void)DidFinish:
支付驗證
在Apple Pay驗證了支付之後,仍然需要開發者來完成交易,這可以用didAuthorizePayment委託方法來完成,它需要你連接伺服器並上傳支付令牌和 其他信息,以完成整個支付流程。在伺服器呼叫結束後,你需要調用completion方法,摒棄提供success或failure標記的參數。你可以在 示例代碼里找到具體實現。
監控並優化交易
Apple Pay是現有的結賬流程非常棒的解決方案,在應用里使用它無疑會讓用戶們高興。盡管Apple Pay讓支付流程極端簡化,仍然有許多變動地方,他們的表現將直接與app的營收掛鉤。
交易監控
Crittercism公司的新Transaction Management是一種很棒的方法,用來監控各種交易確保它們工作正常。如果一個API端末或服務執行緩慢,或者如果用戶決定取消交易,或者你的應用崩潰了,你需要知道這些信息才能更好的優化它們。你可以到Crittercism官方網站了解更多信息。
總結
希望這個入門教程讓你更好的理解和使用Apple Pay。別忘了閱讀蘋果的指南和文檔來了解如何與供應商集成,以及用戶界面的指導規范。你可以在蘋果Apple Pay的官網上找到它們。
⑨ java如何實現在線支付
銀行的介面,如果流量小的話一般都不給接的。
一般都是接的第三方支付介面,我這里有些演示代碼
聯系我,可以發給你參考下