日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java调用支付接口实例_Java 调用支付宝接口

發布時間:2024/9/15 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java调用支付接口实例_Java 调用支付宝接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.注冊開發者中心應用? ?登錄點擊沙箱服務

https://open.alipay.com/platform/developerIndex.htm

2.創建沙箱應用獲取APPID和支付寶網關地址(創建設置密鑰這里就不說明了),將公共密鑰和私密保存到本地。

3.創建項目結構,設置配置文件

1.下載支付寶SDK文件jar包,講jar包導入到項目內

2.編寫配置信息和Java文件

/********************************************************************************************************************************************************************************************/

* 應用啟動加載文件*/

@Component

public class AlipayConfig implements ApplicationListener {

//保存加載配置參數

private static Map aliPropertiesMap = new HashMap();

/*獲取配置參數值*/

public static String getKey(String key) {

return aliPropertiesMap.get(key);

}

/*監聽啟動完成,執行配置加載到aliPropertiesMap*/

public void onApplicationEvent(ApplicationEvent event) {

if (event instanceof ApplicationReadyEvent) {

this.init(aliPropertiesMap);//應用啟動加載

}

}

/*初始化加載aliPropertiesMap*/

public void init(Map map) {

// 獲得PathMatchingResourcePatternResolver對象

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

try {

//加載resource文件(也可以加載resources)

Resource resources = resolver.getResource("classpath:/alipay.properties");

PropertiesFactoryBean config = new PropertiesFactoryBean();

config.setLocation(resources);

config.afterPropertiesSet();

Properties prop = config.getObject();

//循環遍歷所有得鍵值對并且存入集合

for (String key : prop.stringPropertyNames()) {

map.put(key, (String) prop.get(key));

}

} catch (Exception e) {

new Exception("配置文件加載失敗");

}

}

}

/********************************************************************************************************************************************************************************************/

4.創建支付工具類

public class PayUtil {

/**

* @param outTradeNo 商戶訂單號,商戶網站訂單系統中唯一訂單號,必填 對應繳費記錄的orderNo

* @param totalAmount 付款金額,必填

* @param subject 主題

* @param body 商品描述,可空

* @return

*/

public static String alipay(AlipayBean alipayBean) {

//1、獲得初始化的AlipayClient

AlipayClient alipayClient = new DefaultAlipayClient(

AlipayConfig.getKey("gatewayUrl"),//支付寶網關

AlipayConfig.getKey("app_id"),//appid

AlipayConfig.getKey("merchant_private_key"),//商戶私鑰

"json",

AlipayConfig.getKey("charset"),//字符編碼格式

AlipayConfig.getKey("alipay_public_key"),//支付寶公鑰

AlipayConfig.getKey("sign_type")//簽名方式

);

//設置請求參數

AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();

alipayRequest.setReturnUrl(AlipayConfig.getKey("return_url"));

alipayRequest.setNotifyUrl(AlipayConfig.getKey("notify_url"));

try {

alipayRequest.setBizContent(JSON.toJSONString(alipayBean));

//請求

String result = alipayClient.pageExecute(alipayRequest).getBody();

System.out.println("*********************\n返回結果為:" + result);

return result;

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

return null;

}

}

/**

* 支付寶退款接口

*

* @param outTradeNo

* @param tradeNo

* @param refundAmount

* @param refundReason

* @param out_request_no 標識一次退款請求,同一筆交易多次退款需要保證唯一,如需部分退款,則此參數必傳

* @return

*/

public static String aliRefund(AlipayBean alipayBean) {

//1、獲得初始化的AlipayClient

AlipayClient alipayClient = new DefaultAlipayClient(

AlipayConfig.getKey("gatewayUrl"),//支付寶網關

AlipayConfig.getKey("app_id"),//appid

AlipayConfig.getKey("merchant_private_key"),//商戶私鑰

"json",

AlipayConfig.getKey("charset"),//字符編碼格式

AlipayConfig.getKey("alipay_public_key"),//支付寶公鑰

AlipayConfig.getKey("sign_type")//簽名方式

);

//設置請求參數

AlipayTradeRefundRequest alipayRequest = new AlipayTradeRefundRequest();

alipayRequest.setReturnUrl(AlipayConfig.getKey("return_url"));

alipayRequest.setNotifyUrl(AlipayConfig.getKey("notify_url"));

try {

alipayRequest.setBizContent(JSON.toJSONString(alipayBean));

//請求

String result= alipayClient.execute(alipayRequest).getBody();

System.out.println("*********************\n返回結果為:" + result);

return result;

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

return null;

}

}

/**

* 支付寶的驗簽方法

*

* @param req

* @return

*/

public static boolean checkSign(HttpServletRequest req) {

Map requestMap = req.getParameterMap();

Map paramsMap = new HashMap<>();

requestMap.forEach((key, values) -> {

String strs = "";

for (String value : values) {

strs = strs + value;

}

System.out.println(("key值為" + key + "value為:" + strs));

paramsMap.put(key, strs);

});

//調用SDK驗證簽名

try {

return AlipaySignature.rsaCheckV1(paramsMap, AlipayConfig.getKey("alipay_public_key"), AlipayConfig.getKey("charset"), AlipayConfig.getKey("sign_type"));

} catch (AlipayApiException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("*********************驗簽失敗********************");

return false;

}

}

5.創建Controller,dao和service

6.創建測試html,運行項目訪問測試。

over......

總結

以上是生活随笔為你收集整理的java调用支付接口实例_Java 调用支付宝接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。