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

如何用struts調(diào)用支付寶接口

 更新時(shí)間:2013年04月03日 11:35:47   作者:  
以下為大家介紹如何用struts調(diào)用支付寶接口的例子。

一、ACTION類關(guān)鍵代碼 沒用的包可以干掉

復(fù)制代碼 代碼如下:

package com.hzdracom.alipay.action;

import it.sauronsoftware.base64.Base64;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.dom4j.Document;
import org.springframework.stereotype.Controller;

import com.alibaba.fastjson.JSON;
import com.hzdracom.action.BaseAction;
import com.hzdracom.config.AlipayConfig;
import com.hzdracom.util.AlipaySubmit;
import com.hzdracom.util.HTTPService;
import com.hzdracom.util.UtilDate;
import com.hzlq.source.security.DESUtil;
/*
 * 支付寶付款接口
 * @author ZhuangZi
 * @Directions
 * @version $Id: AliPayAction.java,v 0.1 2013-3-27 下午04:49:57 ZhuangZi Exp $
 */
@Controller
public class AliPayAction extends BaseAction {
    private String              phoneCode;
    private String              totalfee;

    /**
     * 調(diào)用支付寶接口
     * @author ZhuangZi
     * @class com.hzdracom.alipay.action.AliPayAction
     * @method AliPay
     * @Directions 調(diào)用支付寶接口
     * @date 2013-3-27下午04:53:35 void
     */
    public void pay() {
        try {
            /*1****生成支付寶交易號,根據(jù)時(shí)間到毫秒級別*/
            String out_trade_no = UtilDate.getOrderNum() ;
           /*2*****↓↓↓↓↓↓↓↓↓↓把請求參數(shù)打包成數(shù)組↓↓↓↓↓↓↓↓↓↓*/
            Map<String, String> sParaTemp = new HashMap<String, String>();
            sParaTemp = getPayPrama(totalfee, out_trade_no);

            /*3*****↓↓↓↓↓↓↓↓↓↓請求支付寶接口↓↓↓↓↓↓↓↓↓↓*/
            String json = AlipaySubmit.buildRequest(sParaTemp, "get", "確認(rèn)");
            HttpServletResponse response = ServletActionContext.getResponse();
            response.setContentType("text/html");
            response.setCharacterEncoding("utf-8");
            PrintWriter out;
            out = response.getWriter();
            json = JSON.toJSONString(json);
            out.write(json);
            out.flush();
            out.close();

        } catch (IOException e) {
        }
    }

    /**
     *
     * @author ZhuangZi
     * @class com.hzdracom.alipay.action.AliPayAction
     * @method GetPayPrama
     * @Directions 封裝調(diào)用支付寶參數(shù)
      * @date 2013-4-1下午05:26:11
     * @param totalfee 金額
      * @param out_trade_no  訂單編號
      * @return Map<String,String>
     */
    public Map<String, String> getPayPrama(String totalfee, String out_trade_no) {
        Map<String, String> sParaTemp = new HashMap<String, String>();
        sParaTemp.put("service", "create_direct_pay_by_user");
        sParaTemp.put("partner", AlipayConfig.partner);
        sParaTemp.put("_input_charset", AlipayConfig.input_charset);
        sParaTemp.put("payment_type", AlipayConfig.payment_type);
        /*服務(wù)器異步通知頁面路徑//需http://格式的完整路徑,不能加?id=123這類自定義參數(shù)*/
        sParaTemp.put("notify_url", AlipayConfig.notify_url);
        /*頁面跳轉(zhuǎn)同步通知頁面路徑 //需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),不能寫成http://localhost/*/
        sParaTemp.put("return_url", AlipayConfig.return_url);
        /*賣家支付寶帳戶*/
        sParaTemp.put("seller_email", AlipayConfig.seller_email);
        /*商戶訂單號*/
        sParaTemp.put("out_trade_no", out_trade_no);
        /*訂單名稱*/
        sParaTemp.put("subject", AlipayConfig.subject);
        /*付款金額*/
        sParaTemp.put("total_fee", totalfee);
        /*訂單描述*/
        sParaTemp.put("body", AlipayConfig.body);
        /*需以http://開頭的完整路徑,例如:http://www.xxx.com/myorder.html*/
        sParaTemp.put("show_url", AlipayConfig.show_url);
        //防釣魚時(shí)間戳
        sParaTemp.put("anti_phishing_key", AlipayConfig.anti_phishing_key);
        /*客戶端的IP地址 非局域網(wǎng)的外網(wǎng)IP地址,如:221.0.0.1*/
        sParaTemp.put("exter_invoke_ip", AlipayConfig.exter_invoke_ip);
        return sParaTemp;

    }

    public String getPhoneCode() {
        return phoneCode;
    }

    public void setPhoneCode(String phoneCode) {
        this.phoneCode = phoneCode;
    }

    public String getTotalfee() {
        return totalfee;
    }

    public void setTotalfee(String totalfee) {
        this.totalfee = totalfee;
    }

}

二、AlipayConfig 類是封裝支付寶接口參數(shù)

復(fù)制代碼 代碼如下:

package com.hzdracom.config;

import com.hzdracom.util.UtilDate;

/* *
 *類名:AlipayConfig
 *功能:基礎(chǔ)配置類
 *詳細(xì):設(shè)置帳戶有關(guān)信息及返回路徑
 *版本:3.3
 *日期:2012-08-10
 *說明:
 *以下代碼只是為了方便商戶測試而提供的樣例代碼,商戶可以根據(jù)自己網(wǎng)站的需要,按照技術(shù)文檔編寫,并非一定要使用該代碼。
 *該代碼僅供學(xué)習(xí)和研究支付寶接口使用,只是提供一個(gè)參考。

 *提示:如何獲取安全校驗(yàn)碼和合作身份者ID
 *1.用您的簽約支付寶賬號登錄支付寶網(wǎng)站(www.alipay.com)
 *2.點(diǎn)擊“商家服務(wù)”(https://b.alipay.com/order/myOrder.htm)
 *3.點(diǎn)擊“查詢合作者身份(PID)”、“查詢安全校驗(yàn)碼(Key)”

 *安全校驗(yàn)碼查看時(shí),輸入支付密碼后,頁面呈灰色的現(xiàn)象,怎么辦?
 *解決方法:
 *1、檢查瀏覽器配置,不讓瀏覽器做彈框屏蔽設(shè)置
 *2、更換瀏覽器或電腦,重新登錄查詢。
 */

public class AlipayConfig {

 //↓↓↓↓↓↓↓↓↓↓請?jiān)谶@里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
 // 合作身份者ID,以2088開頭由16位純數(shù)字組成的字符串
 public static String partner = "2088001466494907";
 // 商戶的私鑰
 public static String key = "fb30213vjc4k4oabt7z4q9e07sfmlmzr";

 //↑↑↑↑↑↑↑↑↑↑請?jiān)谶@里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

 // 調(diào)試用,創(chuàng)建TXT日志文件夾路徑
 public static String log_path = "D:\\";

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

 // 簽名方式 不需修改
 public static String sign_type = "MD5";

 public static String payment_type = "1";
    //必填,不能修改
    //服務(wù)器異步通知頁面路徑
 public static  String notify_url = "notify_url.jsp";
    //需http://格式的完整路徑,不能加?id=123這類自定義參數(shù)

    //頁面跳轉(zhuǎn)同步通知頁面路徑
 public static  String return_url = "return_url.jsp";
    //需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),不能寫成http://localhost/

    //賣家支付寶帳戶
 public static   String seller_email = "jjj@hzdracom.com";
    //必填

    //商戶訂單號
 public static  String out_trade_no =UtilDate.getOrderNum();
    //商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號,必填

    //訂單名稱
 public static String subject = "隱號充值";
    //必填

    //訂單描述
 public static  String body = "隱號充值";
    //商品展示地址

 public static String show_url ="";
  //防釣魚時(shí)間戳
 public static String anti_phishing_key="";
 /*客戶端的IP地址 非局域網(wǎng)的外網(wǎng)IP地址,如:221.0.0.1*/
 public static String exter_invoke_ip="";
}

三、strut配置文件

<action name="pay" method="pay" class="com.hzdracom.alipay.action.AliPayAction">
  </action>

以上屬于關(guān)鍵代碼部分,需要注意的事項(xiàng)有 :

1.需要把支付寶提供的接口的幾個(gè)類引入到你的項(xiàng)目中,包括架包

2.notify_url.jsp和return_url.jsp地址要做好些成外網(wǎng)地址的全路徑

3.你自己的業(yè)務(wù)處理寫notify_url.jsp這個(gè)里面,也可以直接寫個(gè)接口給支付寶接口調(diào)用


 

相關(guān)文章

  • java實(shí)現(xiàn)基于TCP協(xié)議網(wǎng)絡(luò)socket編程(C/S通信)

    java實(shí)現(xiàn)基于TCP協(xié)議網(wǎng)絡(luò)socket編程(C/S通信)

    這篇文章主要介紹了java實(shí)現(xiàn)基于TCP協(xié)議網(wǎng)絡(luò)socket編程(C/S通信),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 從千千靜聽歌詞服務(wù)器獲取lrc歌詞示例分享

    從千千靜聽歌詞服務(wù)器獲取lrc歌詞示例分享

    這篇文章主要介紹了使用PHP從千千靜聽歌詞服務(wù)器獲取lrc歌詞的方法,大家參考使用吧
    2014-01-01
  • Java中的邏輯控制語句詳解

    Java中的邏輯控制語句詳解

    下面小編就為大家?guī)硪黄狫ava邏輯控制的基礎(chǔ)文章。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-08-08
  • Springboot mybatisplus如何解決分頁組件IPage失效問題

    Springboot mybatisplus如何解決分頁組件IPage失效問題

    這篇文章主要介紹了Springboot mybatisplus如何解決分頁組件IPage失效問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring Boot統(tǒng)一異常處理最佳實(shí)踐(拓展篇)

    Spring Boot統(tǒng)一異常處理最佳實(shí)踐(拓展篇)

    這篇文章主要給大家介紹了關(guān)于Spring Boot統(tǒng)一異常處理最佳實(shí)踐(拓展篇)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Java8新特性之空指針異常的克星Optional類的實(shí)現(xiàn)

    Java8新特性之空指針異常的克星Optional類的實(shí)現(xiàn)

    這篇文章主要介紹了Java8新特性之空指針異常的克星Optional類的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java對象在JVM中的生命周期詳解

    Java對象在JVM中的生命周期詳解

    這篇文章主要介紹了Java對象在JVM中的生命周期詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • JVM的垃圾回收機(jī)制你了解嗎

    JVM的垃圾回收機(jī)制你了解嗎

    這篇文章主要為大家介紹了JVM的垃圾回收機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • mybatis動(dòng)態(tài)拼接實(shí)現(xiàn)有條件的插入

    mybatis動(dòng)態(tài)拼接實(shí)現(xiàn)有條件的插入

    這篇文章主要介紹了mybatis動(dòng)態(tài)拼接實(shí)現(xiàn)有條件的插入,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Zookeeper中如何解決zookeeper.out文件輸出位置問題

    Zookeeper中如何解決zookeeper.out文件輸出位置問題

    這篇文章主要介紹了Zookeeper中如何解決zookeeper.out文件輸出位置問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論

社会| 安庆市| 黄骅市| 永城市| 若尔盖县| 鄱阳县| 贵州省| 万年县| 科尔| 四平市| 伊春市| 板桥市| 扎兰屯市| 正阳县| 永善县| 高阳县| 栾川县| 大兴区| 成武县| 抚远县| 安阳县| 湖州市| 平阴县| 茂名市| 渝中区| 彰化县| 凤庆县| 汶川县| 乌什县| 马公市| 望城县| 泰和县| 鄢陵县| 乌兰浩特市| 上高县| 江北区| 修水县| 伊金霍洛旗| 宝坻区| 堆龙德庆县| 额尔古纳市|