❶ 支付寶即時支付開發_java..求指教
notify_url與return_url我做的時候當時都寫了,你其實可以看他的開發文檔,這個是不是必選的一看就知道了,提交淘寶的參數,可以自己定義,但不知道你要定義什麼了,一般提交到支付寶的信息,是你的支付寶信息,你的訂單信息,以及他們的加密簽名,然後成功後,支付寶會把訂單信息以及簽名返回,你需要做的是對這個簽名做確認,對返回的訂單信息,和你的支付寶key再一次加密形成簽名,與支付寶的返回的簽名做比對,一致的話,就證明是你的訂單信息支付成功了,然後就沒有然後了,看支付介面的文檔和他的官方例子就好,希望能幫到你!
❷ java支付寶支付需要什麼參數
吐槽一下:支付寶的介面文檔真心太難看懂了,亂七八糟,都不知道去哪裡找自己要的東西,還要有技術客服,感謝技術客服(┬_┬)
支付寶技術客服https://support.open.alipay.com/alipay/support/index.htm 點機器人,輸入「轉人工」
1.https://doc.open.alipay.com/doc2/apiList?docType=4
在支付寶開放平台-文檔中心中找到你業務對應的介面文檔,比如移動支付的介面文檔:
https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1
移動支付java後台的介面也在這里下。
2.解壓後找到裡面服務端的demo,在Alipay.java中配置好partner跟key,具體如何調用,查看Webroot下的jsp demo
3.一般集成好一個介面後,其他介面調用方式都一樣的,只不過更改參數service的值以及根據具體的業務增減參數就行了。
單筆交易SDK(可在開放平台中找到,或者問客服):
http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/demo/alipaysinglequery.zip
坑1:錯誤碼ILLEGAL_PARTNER_EXTERFACE,不一定是你的簽名或者資料錯了,也有可能是介面沒簽約(小編就是如此)。
坑2:退款介面
如果你是網站還好,可以申請即時到帳。但是APP的話,很抱歉的跟你說,沒有APP退款的介面,是的,沒有。。。支付寶即時到帳需要有獨立的網站,而且網站需要有支付相關的操作。
總結:看文檔還不能解決問題,問客服,最快的方式解決。當然,也可以給小編留言。
❸ java小程序awt盡快!!!可私戳支付寶號!!!
* 將訂單提交支付寶進行網上支付
*/
public ActionForward submitAlipayUrl(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String orderNo = request.getParameter("orderNo");//訂單編號
HashMap hm = new HashMap();
hm.put("_input_charset", "utf-8");// 採用相同的編碼方式
hm.put("body", "企鵝個性化圖書訂單,訂單號:" + orderNo);// 填寫在跳到支付寶頁面上顯示的付款內容信息
hm.put("notify_url", "http://127.0.0.1:8888/mypenguin/orders.do?method=AlipayNotify");// 客戶付款後,支付寶調用的頁面
hm.put("out_trade_no", orderNo);// 外部交易號,最好具有唯一性,在獲取支付寶發來的付款信息時使用.
hm.put("partner", "2088002302055380");// partnerId(合作夥伴ID)
//hm.put("agent", "2088002302055380");// partnerId(合作夥伴ID)
hm.put("payment_type", "1");// 支付類型 1=商品購買,2=服務購買,...
//hm.put("price", "178.00");// 訂單金額信息
hm.put("total_fee", "178.00");// 訂單金額和信息
//hm.put("quantity", "1");// 訂單商品數量,一般都是寫1,它是按照整個訂單包來計算
hm.put(「return_url」, 「http://127.0.0.1:8888/mypenguin/orders.do?method=AlipayReturn」);// 客戶付款成功後,顯示給客戶的頁面
hm.put("show_url", "http://127.0.0.1:8888/mypenguin/books.do?method=list&kindId=1");//展示地址,即在支付頁面時,商品名稱旁邊的「詳情」的鏈接地址。
hm.put("seller_email", "[email protected]");// 你的支付寶賬戶email
hm.put("service", "create_direct_pay_by_user");// create_direct_pay_by_user=直接付款,trade_create_by_buyer=擔保付款
hm.put("subject", "企鵝個性化圖書訂單號:" + orderNo);// 填寫在跳到支付寶頁面上顯示的付款標題信息
String payGateway = "https://www.alipay.com/cooperate/gateway.do";// 跳轉到支付寶的url頭
String securityCode="";//securityCode(安全碼);
String sign = makeUrl(hm,securityCode,"utf-8",payGateway);//securityCode(安全碼);
hm.put("sign", sign);
hm.put("sign_type", "MD5");
PrintWriter out = response.getWriter();
out.println("<form name='alipaysubmit' method='post' action='https://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8' >");
out.println("<input type='hidden' name='service' value='" + hm.get("service") + "'>");
out.println("<input type='hidden' name='partner' value='" + hm.get("partner") + "'>");
out.println("<input type='hidden' name='seller_email' value='" + hm.get("seller_email") + "'>");
out.println(「「);
out.println("<input type='hidden' name='subject' value='" + hm.get("subject") + "'>");
out.println("<input type='hidden' name='body' value='" + hm.get("body") + "'>");
out.println("<input type='hidden' name='total_fee' value='" + hm.get("total_fee") + "'>");
out.println("<input type='hidden' name='show_url' value='" + hm.get("show_url") + "'>");
out.println("<input type='hidden' name='return_url' value='" + hm.get("return_url") + "'>");
out.println("<input type='hidden' name='notify_url' value='" + hm.get("notify_url") + "'>");
out.println("<input type='hidden' name='payment_type' value='1'>");
out.println("<input type='hidden' name='sign' value='" + hm.get("sign") + "'>");
out.println("<input type='hidden' name='sign_type' value='" + hm.get("sign_type") + "'>");
out.println("</form>");
out.println("<script>");
out.println(" document.alipaysubmit.submit()");
out.println("</script>");
return null;
}
/**
* 根據傳入的參數生成Alipay的支付URL
* @param hm 參數值
* @param securityCode 安全碼
* @param charset 編碼
* @param payGateway 支付寶gateway
@return
*/
public static String makeUrl(HashMap hm,String securityCode,String charSet,String payGateway) throws Exception{
List keys = new ArrayList(hm.keySet());
Collections.sort(keys);//支付寶要求參數必須按字母排序
StringBuffer content = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
content.append((String) keys.get(i));
content.append("=");
content.append((String) hm.get((String) keys.get(i)));
if (i != keys.size() - 1) {
content.append("&");
}
}
content.append(securityCode);
String sign = DataUtil.MD5Encode(content.toString(), charSet); //MD5加密
return sign;
}
2、return_url的內容:
/**
* 支付寶支付完成以後,當前窗口會從支付寶的頁面跳轉回這個頁面。該頁面稱作「返回頁」,
* 是同步被支付寶伺服器所調用,可當作是支付完成後的提示信息頁,如「您的某某某訂單,多少金額已支付成功」。
*/
public ActionForward AlipayReturn(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify";
//String alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";//此路徑是在上面鏈接地址無法起作用時替換使用。
alipayNotifyURL = alipayNotifyURL+ "&partner=2088002302055380¬ify_id="+ request.getParameter("notify_id");
// 獲取支付寶ATN返回結果,true是正確的訂單信息,false 是無效的
String responseTxt = check(alipayNotifyURL);
// 獲得POST 過來參數設置到新的requestParams中
Map requestParams = request.getParameterMap();
List keys = new ArrayList(requestParams.keySet());
Collections.sort(keys);
StringBuffer content = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
String key=(String) keys.get(i);
if(!key.equals("")&&!key.equals("sign")&&!key.equals("sign_type")){
content.append((String) keys.get(i));
content.append("=");
content.append((String)requestParams.get((String) keys.get(i)));
if (i != keys.size() - 1) {
content.append("&");
}
}
}
String securityCode="";//securityCode(安全碼);
content.append(securityCode);
String mysign = DataUtil.MD5Encode(content.toString(), "utf-8");
System.out.println("--------------------------content="+content);
System.out.println("--------------------------mysign="+mysign);
System.out.println("--------------------------sign="+request.getParameter("sign"));
if (mysign.equals(request.getParameter("sign")) && responseTxt.equals("true") ){
if (request.getParameter("trade_status").equalsIgnoreCase("TRADE_FINISHED")){
// 可以做重定向,也可以用來虛擬物品發貨
}
return mapping.findForward("payOK");//交易成功
}else{
return mapping.findForward("payFail");//交易失敗
}
}
3、notify_url的內容:
/**
* 通知返回URL,僅適用於非同步返回處理結果的介面。有些服務是無法立即返回處理結果的,那麼需要通過這個URL將處理結果非同步返回給合作夥伴
*/
public ActionForward AlipayNotify(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify";
//String alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";//此路徑是在上面鏈接地址無法起作用時替換使用。
alipayNotifyURL = alipayNotifyURL+ "&partner=2088002302055380¬ify_id="+ request.getParameter("notify_id");
// 獲取支付寶ATN返回結果,true是正確的訂單信息,false 是無效的
String responseTxt = check(alipayNotifyURL);
// 獲得POST 過來參數設置到新的requestParams中
Map requestParams = request.getParameterMap();
List keys = new ArrayList(requestParams.keySet());
Collections.sort(keys);
StringBuffer content = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
String key=(String) keys.get(i);
if(!key.equals("")&&!key.equals("sign")&&!key.equals("sign_type")){
content.append((String) keys.get(i));
content.append("=");
content.append((String)requestParams.get((String) keys.get(i)));
if (i != keys.size() - 1) {
content.append("&");
}
}
}
String securityCode="";//securityCode(安全碼);
content.append(securityCode);
String mysign = DataUtil.MD5Encode(content.toString(), "utf-8");
System.out.println("--------------------------content="+content);
System.out.println("--------------------------mysign="+mysign);
System.out.println("--------------------------sign="+request.getParameter("sign"));
if (mysign.equals(request.getParameter("sign")) && responseTxt.equals("true") ){
if (request.getParameter("trade_status").equalsIgnoreCase("TRADE_FINISHED")){
// 可以做重定向,也可以用來虛擬物品發貨
}
return mapping.findForward("payOK");
}else{
return mapping.findForward("payFail");
}
}
/**
@param myUrl
*
String inputLine = 「「;
try
{
URL url = new URL(urlvalue);
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String stTemp = 「「;
while((stTemp = in.readLine()) != null)
{
System.out.println(stTemp);
inputLine = inputLine + stTemp;
}
}
catch(Exception e)
{
e.printStackTrace();
}
return inputLine;
}
代碼編寫完畢,可以試著debug調試一下
@param url
*
@return 獲取url內容
*/
public static String check(String urlvalue ) {
❹ java支付寶介面成功回調方法跳轉頁面問題
這個在支付寶的介面里就有一個文件return_url.php這個是接受返回的數據的,如果想要返回該回網址,那就在
alipay.config.php設置這個答
//頁面跳轉同步通知頁面路徑
$return_url =
---------------------解決方案------------------------------
我也在看支付寶直接,流程差不多知道了,在支付寶論壇里可以下載一個開發文檔,裡面有php的demo,裡面可以設置狀態頁面的地址和返回頁面的地址,只是測試有點麻煩,沒有自己的網站
❺ 哪位有java調用支付寶介面的例子
1、如果你要做支付功能,技術上很簡單,支付寶有提供介面,改兩個內參數就可以用了,容非常簡單。
2、但是你得網站如果要上線盈利的話,就麻煩了。
3、首先你的支付寶收款的賬號要進行商家認證,具體怎麼認證我就不知道了,當時是我老闆認證的,我就知道這個商家實名認證比個人實名認證麻煩的多。認證之後支付寶會給你兩個參數,一個是合作身份者ID,以2088開頭由16位純數字組成的字元串,一個是商戶的私鑰。你拿到這兩個參數之後去下載支付寶提供的介面程序,把這兩個參數填進去就好了,別的都不用動。當然訂單價格和訂單號的生成規則你可以自己寫。總之支付寶的介面開發的非常完善,而且傻瓜式操作,一看就懂。
4、然後你的網站域名要備案,申請ICP證,經營性ICP(為用戶提供有償的信息服務)需要你注冊公司的,而且營業執照很麻煩,我老闆現在還在辦理。
如果你只是想加個功能,看看介面怎麼用,那簡單。但是你要做正規的網站用介面盈利的話,技術上實現很簡單,把程序包下下來,然後改兩個參數,但是合法經營的話需要的手續很多。