最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 商戶PC端接入支付寶支付的實現(xiàn)方法

 更新時間:2019年08月20日 14:23:36   作者:三片葉子貳  
這篇文章主要介紹了java 商戶PC端接入支付寶支付的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

用戶在商戶網(wǎng)站上完成支付一、商戶申請流程和業(yè)務場景即時到賬:網(wǎng)上交易時,買家的交易資金直接打入賣家支付寶賬戶,快速回籠交易資金。申請條件:

1) 申請前必須擁有經(jīng)過實名認證的支付寶賬戶;
2) 企業(yè)或個體工商戶可申請;
3) 需提供真實有效的營業(yè)執(zhí)照,且支付寶賬戶名稱需與營業(yè)執(zhí)照主體一致;
4) 網(wǎng)站能正常訪問且頁面顯示完整,網(wǎng)站需要明確經(jīng)營內(nèi)容且有完整的商品信息;
5) 網(wǎng)站必須通過ICP備案。如為個體工商戶,網(wǎng)站備案主體需要與支付寶賬戶主體名稱一致;
6) 如為個體工商戶,則團購不開放,且古玩、珠寶等奢侈品、投資類行業(yè)無法申請本產(chǎn)品;

使用場景:

買家選擇產(chǎn)品

這里寫圖片描述 

這里寫圖片描述

買家選擇付款方式

買家選擇手機掃一掃付款或 買家選擇在電腦端登錄賬戶付款

這里寫圖片描述

買家選擇在電腦端登錄賬戶付款,并完成交易

這里寫圖片描述 

這里寫圖片描述

買家選擇手機掃一掃并完成付款

這里寫圖片描述 

這里寫圖片描述

查看交易記錄

這里寫圖片描述

商戶登入注冊入口:https://b.alipay.com/signing/productDetail.htm?productId=I1011000290000001000#J_detailItem3
支付寶支付實例下載:https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103566&docType=1
支付寶支付開發(fā)者API:https://doc.open.alipay.com/docs/api.htm?docType=4&apiId=850

二、開發(fā)步驟及說明

  • 注冊配置商戶環(huán)境
  • 閱讀開發(fā)者文檔API:alipay.trade.pay (統(tǒng)一收單交易支付接口)

這里寫圖片描述

下載DEMO的java版本 -

代碼結(jié)構(gòu):

這里寫圖片描述 

這里寫圖片描述

1. index.jsp支付寶即時到賬接口調(diào)用頁面

<div class="content">
    <form action="alipayapi.jsp" class="alipayform" method="POST" target="_blank">
      <div class="element" style="margin-top:60px;">
        <div class="legend">支付寶即時到賬交易接口快速通道 </div>
      </div>
      <div class="element">
        <div class="etitle">商戶訂單號:</div>
        <div class="einput"><input type="text" name="WIDout_trade_no" id="out_trade_no"></div>
        <br>
        <div class="mark">注意:商戶訂單號(out_trade_no).必填(建議是英文字母和數(shù)字,不能含有特殊字符</div>
      </div>

      <div class="element">
        <div class="etitle">商品名稱:</div>
        <div class="einput"><input type="text" name="WIDsubject" value="test商品123"></div>
        <br>
        <div class="mark">注意:產(chǎn)品名稱(subject),必填(建議中文,英文,數(shù)字,不能含有特殊字符)</div>
      </div>
      <div class="element">
        <div class="etitle">付款金額:</div>
        <div class="einput"><input type="text" name="WIDtotal_fee" value="0.01"></div>
        <br>
        <div class="mark">注意:付款金額(total_fee),必填(格式如:1.00,請精確到分)</div>
      </div>
      <div class="element">
        <div class="etitle">商品描述:</div>
        <div class="einput"><input type="text" name="WIDbody" value="即時到賬測試"></div>
        <br>
        <div class="mark">注意:商品描述(body),選填(建議中文,英文,數(shù)字,不能含有特殊字符)</div>
      </div>
      <div class="element">
        <input type="submit" class="alisubmit" value ="確認支付">
      </div>
    </form>
  </div>

準備用戶產(chǎn)品參數(shù)

點擊確認:提交到alipayapi.jsp

2.alipayapi.jsp獲取調(diào)用接口配置公共參數(shù)

////////////////////////////////////請求參數(shù)//////////////////////////////////////

    //商戶訂單號,商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號,必填
    String out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"),"UTF-8");

    //訂單名稱,必填
    String subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"),"UTF-8");

    //付款金額,必填
    String total_fee = new String(request.getParameter("WIDtotal_fee").getBytes("ISO-8859-1"),"UTF-8");

    //商品描述,可空
    String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"),"UTF-8");



    //////////////////////////////////////////////////////////////////////////////////

    //把請求參數(shù)打包成數(shù)組
    Map<String, String> sParaTemp = new HashMap<String, String>();
    sParaTemp.put("service", AlipayConfig.service);
    sParaTemp.put("partner", AlipayConfig.partner);
    sParaTemp.put("seller_id", AlipayConfig.seller_id);
    sParaTemp.put("_input_charset", AlipayConfig.input_charset);
    sParaTemp.put("payment_type", AlipayConfig.payment_type);
    sParaTemp.put("notify_url", AlipayConfig.notify_url);
    sParaTemp.put("return_url", AlipayConfig.return_url);
    sParaTemp.put("anti_phishing_key", AlipayConfig.anti_phishing_key);
    sParaTemp.put("exter_invoke_ip", AlipayConfig.exter_invoke_ip);
    sParaTemp.put("out_trade_no", out_trade_no);
    sParaTemp.put("subject", subject);
    sParaTemp.put("total_fee", total_fee);
    sParaTemp.put("body", body);
    //其他業(yè)務參數(shù)根據(jù)在線開發(fā)文檔,添加參數(shù).文檔地址:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.O9yorI&treeId=62&articleId=103740&docType=1
    //如sParaTemp.put("參數(shù)名","參數(shù)值");
    //建立請求
    String sHtmlText = AlipaySubmit.buildRequest(sParaTemp,"get","確認");
    out.println(sHtmlText);

調(diào)用AlipaySubmit.buildRequest(sParaTemp,”get”,”確認”);

3.AlipaySubmit組裝調(diào)用支付寶網(wǎng)管接口

/**
   * 建立請求,以表單HTML形式構(gòu)造(默認)
   * @param sParaTemp 請求參數(shù)數(shù)組
   * @param strMethod 提交方式。兩個值可選:post、get
   * @param strButtonName 確認按鈕顯示文字
   * @return 提交表單HTML文本
   */
  public static String buildRequest(Map<String, String> sParaTemp, String strMethod, String strButtonName) {
    //待請求參數(shù)數(shù)組
    Map<String, String> sPara = buildRequestPara(sParaTemp);
    List<String> keys = new ArrayList<String>(sPara.keySet());

    StringBuffer sbHtml = new StringBuffer();

    sbHtml.append("<form id=\"alipaysubmit\" name=\"alipaysubmit\" action=\"" + ALIPAY_GATEWAY_NEW
           + "_input_charset=" + AlipayConfig.input_charset + "\" method=\"" + strMethod
           + "\">");

    for (int i = 0; i < keys.size(); i++) {
      String name = (String) keys.get(i);
      String value = (String) sPara.get(name);

      sbHtml.append("<input type=\"hidden\" name=\"" + name + "\" value=\"" + value + "\"/>");
    }

    //submit按鈕控件請不要含有name屬性
    sbHtml.append("<input type=\"submit\" value=\"" + strButtonName + "\" style=\"display:none;\"></form>");
    sbHtml.append("<script>document.forms['alipaysubmit'].submit();</script>");

    return sbHtml.toString();
  }

組裝成隱藏form表單自動提交。

這里寫圖片描述

同步和異步返回頁面進行對返回參數(shù)的獲取和對商戶本身業(yè)務邏輯處理

4.說明

public class AlipayConfig {

//↓↓↓↓↓↓↓↓↓↓請在這里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

  // 合作身份者ID,簽約賬號,以2088開頭由16位純數(shù)字組成的字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
  public static String partner = "";

  // 收款支付寶賬號,以2088開頭由16位純數(shù)字組成的字符串,一般情況下收款賬號就是簽約賬號
  public static String seller_id = partner;

  // MD5密鑰,安全檢驗碼,由數(shù)字和字母組成的32位字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
  public static String key = "";

  // 服務器異步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問
  public static String notify_url = "http://商戶網(wǎng)址/create_direct_pay_by_user-JAVA-UTF-8/notify_url.jsp";

  // 頁面跳轉(zhuǎn)同步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問
  public static String return_url = "http://商戶網(wǎng)址/create_direct_pay_by_user-JAVA-UTF-8/return_url.jsp";

  // 簽名方式
  public static String sign_type = "MD5";

  // 調(diào)試用,創(chuàng)建TXT日志文件夾路徑,見AlipayCore.java類中的logResult(String sWord)打印方法。
  public static String log_path = "C:\\";

  // 字符編碼格式 目前支持 gbk 或 utf-8
  public static String input_charset = "utf-8";

  // 支付類型 ,無需修改
  public static String payment_type = "1";

  // 調(diào)用的接口名,無需修改
  public static String service = "create_direct_pay_by_user";


//↑↑↑↑↑↑↑↑↑↑請在這里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//↓↓↓↓↓↓↓↓↓↓ 請在這里配置防釣魚信息,如果沒開通防釣魚功能,為空即可 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

  // 防釣魚時間戳 若要使用請調(diào)用類文件submit中的query_timestamp函數(shù)
  public static String anti_phishing_key = "";

  // 客戶端的IP地址 非局域網(wǎng)的外網(wǎng)IP地址,如:221.0.0.1
  public static String exter_invoke_ip = "";

//↑↑↑↑↑↑↑↑↑↑請在這里配置防釣魚信息,如果沒開通防釣魚功能,為空即可 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

}

按照說明配置

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Spring Bean的包掃描的實現(xiàn)方法

    Spring Bean的包掃描的實現(xiàn)方法

    這篇文章主要介紹了Spring Bean的包掃描的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java方法覆蓋重寫實現(xiàn)原理解析

    Java方法覆蓋重寫實現(xiàn)原理解析

    這篇文章主要介紹了Java方法覆蓋重寫實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java字符串拼接+和StringBuilder的比較與選擇

    Java字符串拼接+和StringBuilder的比較與選擇

    Java 提供了兩種主要的方式:使用 "+" 運算符和使用 StringBuilder 類,本文主要介紹了Java字符串拼接+和StringBuilder的比較與選擇,感興趣的可以了解一下
    2023-10-10
  • Java遞歸來實現(xiàn)漢諾塔游戲,注釋詳細

    Java遞歸來實現(xiàn)漢諾塔游戲,注釋詳細

    這篇文章介紹了Java遞歸來實現(xiàn)漢諾塔游戲的方法,文中的代碼注釋介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Thymeleaf 3.0 自定義標簽方言屬性的實例講解

    Thymeleaf 3.0 自定義標簽方言屬性的實例講解

    這篇文章主要介紹了Thymeleaf 3.0 自定義標簽方言屬性的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • mybatis-plus 使用Condition拼接Sql語句各方法的用法

    mybatis-plus 使用Condition拼接Sql語句各方法的用法

    這篇文章主要介紹了mybatis-plus 使用Condition拼接Sql語句各方法的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot中Zookeeper分布式鎖的原理和用法詳解

    SpringBoot中Zookeeper分布式鎖的原理和用法詳解

    Zookeeper是一個分布式協(xié)調(diào)服務,它提供了高可用、高性能、可擴展的分布式鎖機制,SpringBoot是一個基于Spring框架的開發(fā)框架,它提供了對Zookeeper分布式鎖的集成支持,本文將介紹SpringBoot中的 Zookeeper分布式鎖的原理和使用方法,需要的朋友可以參考下
    2023-07-07
  • MybatisPlus查詢條件為空字符串或null問題及解決

    MybatisPlus查詢條件為空字符串或null問題及解決

    這篇文章主要介紹了MybatisPlus查詢條件為空字符串或null問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問題

    mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問題

    這篇文章主要介紹了mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問題,具有很好的參考價值,希望對大家有所幫助。
    2022-02-02
  • Java實現(xiàn)FTP服務器功能實例代碼

    Java實現(xiàn)FTP服務器功能實例代碼

    FTP(File Transfer Protocol 文件傳輸協(xié)議)是Internet 上用來傳送文件的協(xié)議,本文給大家分享Java實現(xiàn)FTP服務器功能實例代碼,對java實現(xiàn)ftp服務器相關知識感興趣的朋友一起學習吧
    2015-12-12

最新評論

沙湾县| 南平市| 胶州市| 安顺市| 濮阳县| 旅游| 水富县| 日喀则市| 旅游| 安图县| 庆阳市| 东海县| 海南省| 文化| 北宁市| 常山县| 黑龙江省| 崇义县| 莲花县| 南澳县| 东安县| 洪湖市| 金门县| 司法| 大厂| 武邑县| 河北区| 子长县| 饶平县| 瑞昌市| 江华| 延庆县| 营山县| 灵石县| 咸丰县| 和硕县| 辽阳市| 博爱县| 南宁市| 曲周县| 通城县|