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

java實現(xiàn)支付寶退款功能

 更新時間:2018年09月29日 10:41:10   作者:王嘯tr1912  
這篇文章主要為大家詳細 介紹了java實現(xiàn)支付寶退款功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近完成的差不多的項目突然需要加退款的流程需求了,所以來小小的實現(xiàn)以下。

其實對比其他的支付和退款來說,支付寶算是特別專業(yè),也是特別簡單的一個了。

一、引入支付寶SDK

在這里說一下,其實每種支付都會有一個官方帶的SDK,我們可以把這個sdk引入到我們的項目中去,然后我們就可以調(diào)用里面的方法和對象,給里面?zhèn)髦?,進行我們相應(yīng)的請求的訪問和介入。    

首先引入如上圖所示的jar包,然后我們就算是成功了一半了。

下載地址

然后我們需要把這個jar包引入到所需要的地方,這里不做過多的描述。

二、找到需要的資源

做支付,最最基本的還是各種appid,還有公鑰,私鑰,以及請求的網(wǎng)關(guān)等等內(nèi)容,支付寶需要的包括:

  • APP_ID:開放平臺賬號申請的appid
  • requestUrl:實現(xiàn)功能所需要請求的網(wǎng)關(guān)地址
  • APP_PRIVATE_KEY:用戶自己生成的私鑰
  • ALIPAY_PUBLIC_KEY:支付寶生成的公鑰
  • CHARSET:我們需要的字符編碼,一般為utf-8的

三、編寫請求代碼 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeRefundModel;
import com.alipay.api.request.AlipayTradeRefundRequest;
import com.alipay.api.response.AlipayTradeRefundResponse;
 
public class AlipayUtil {
 
 private static final Logger LOGGER = LoggerFactory.getLogger(AlipayUtil.class); 
 private static String APP_ID = "234789720984098";
 
 //支付寶退款請求的網(wǎng)關(guān)
 private static String requestUrl = "https://openapi.alipay.com/gateway.do";
 //用戶自己生成的私鑰
 private static String APP_PRIVATE_KEY = "隨機字符,見文檔";
 //支付寶公鑰
 private static String ALIPAY_PUBLIC_KEY = "從支付寶中獲得";
 
 //編碼級別
 private static String CHARSET = "UTF-8";
 
 public static String refundOrder(AliRefundTO aliRefundTO){
 System.out.println("開始調(diào)用支付寶加密******************************************************");
 //實例化客戶端
  AlipayClient alipayClient = new DefaultAlipayClient(requestUrl, APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
  //SDK已經(jīng)封裝掉了公共參數(shù),這里只需要傳入業(yè)務(wù)參數(shù)。以下方法為sdk的model入?yún)⒎绞?model和biz_content同時存在的情況下取biz_content)。
  AlipayTradeRefundModel refundModel = new AlipayTradeRefundModel();
  refundModel.setTradeNo(aliRefundTO.getTrade_no());
  refundModel.setRefundAmount(aliRefundTO.getRefund_amount());
  refundModel.setRefundReason("商品退款");
  //實例化具體API對應(yīng)的request類,類名稱和接口名稱對應(yīng),當前調(diào)用接口名稱:alipay.trade.app.pay
  AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
  request.setBizModel(refundModel);
  try{
  AlipayTradeRefundResponse response = alipayClient.execute(request);
  System.out.println(response.getMsg()+"\n");
  System.out.println(response.getBody());
  }catch(Exception e){
  e.printStackTrace();
  LOGGER.error("支付寶退款錯誤!",e.getMessage());  
  } 
  return "";  
 }
 
 public static void main(String[] arg){
 AliRefundTO aliRefundTO=new AliRefundTO();
 aliRefundTO.setRefund_amount("0.01");
 aliRefundTO.setTrade_no("2018050421001004310518105890");
 String res=refundOrder(aliRefundTO);
 }
}

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

相關(guān)文章

  • 解析Java內(nèi)存分配和回收策略以及MinorGC、MajorGC、FullGC

    解析Java內(nèi)存分配和回收策略以及MinorGC、MajorGC、FullGC

    本節(jié)將會介紹一下:對象的內(nèi)存分配與回收策略;對象何時進入新生代、老年代;MinorGC、MajorGC、FullGC的定義區(qū)別和觸發(fā)條件;還有通過圖示展示了GC的過程。
    2021-09-09
  • String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實現(xiàn)代碼

    String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實現(xiàn)代碼

    這篇文章主要介紹了String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java實現(xiàn)商城訂單超時取消功能

    Java實現(xiàn)商城訂單超時取消功能

    大多數(shù)的B2C商城項目都會有限時活動,當用戶下單后都會有支付超時時間,當訂單超時后訂單的狀態(tài)就會自動變成已取消 ,這個功能的實現(xiàn)有很多種方法,本文的實現(xiàn)方法適合大多數(shù)比較小的商城使用。具體實現(xiàn)方式可以跟隨小編一起看看吧
    2019-12-12
  • 基于ArrayList初始化長度的作用及影響

    基于ArrayList初始化長度的作用及影響

    這篇文章主要介紹了基于ArrayList初始化長度的作用及影響,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • springboot使用單元測試實戰(zhàn)

    springboot使用單元測試實戰(zhàn)

    這篇文章主要介紹了springboot使用單元測試實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Java mongodb連接配置實踐

    Java mongodb連接配置實踐

    這篇文章主要介紹了Java mongodb連接配置實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Springboot啟動報錯Input length = 2的問題解決

    Springboot啟動報錯Input length = 2的問題解決

    最近使用Springboot啟動報錯,報錯內(nèi)容java.nio.charset.MalformedInputException: Input length = 2,下面就來介紹一下解決方法,感興趣的可以了解一下
    2024-08-08
  • Spring?Boot集成JavaMailSender發(fā)送郵件功能的實現(xiàn)

    Spring?Boot集成JavaMailSender發(fā)送郵件功能的實現(xiàn)

    spring提供了發(fā)送郵件的接口JavaMailSender,通過JavaMailSender可以實現(xiàn)后端發(fā)送郵件,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot集成JavaMailSender發(fā)送郵件功能的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • java線程的中斷和同步問題的實現(xiàn)

    java線程的中斷和同步問題的實現(xiàn)

    本文主要介紹了java線程的中斷和同步問題的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • java使用正則表達式判斷手機號的方法示例

    java使用正則表達式判斷手機號的方法示例

    這篇文章主要介紹了java使用正則表達式判斷手機號的方法,分析了手機號碼段的原理及java使用正則表達式針對手機號的匹配操作實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06

最新評論

始兴县| 梅州市| 杭锦后旗| 库尔勒市| 岢岚县| 抚州市| 玉山县| 威海市| 柳林县| 安西县| 深圳市| 伽师县| 南昌县| 来宾市| 烟台市| 上思县| 安陆市| 合阳县| 邵阳县| 邻水| 榕江县| 凤山县| 旬邑县| 上饶县| 上杭县| 彭阳县| 嘉兴市| 宁津县| 临沧市| 外汇| 陆丰市| 如皋市| 永川市| 广元市| 晋宁县| 师宗县| 霞浦县| 罗定市| 额尔古纳市| 屏东市| 琼结县|