欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

一、引入支付寶SDK

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

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

下載地址

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

二、找到需要的資源

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

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

三、編寫請(qǐng)求代碼 

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";
 
 //支付寶退款請(qǐng)求的網(wǎng)關(guān)
 private static String requestUrl = "https://openapi.alipay.com/gateway.do";
 //用戶自己生成的私鑰
 private static String APP_PRIVATE_KEY = "隨機(jī)字符,見文檔";
 //支付寶公鑰
 private static String ALIPAY_PUBLIC_KEY = "從支付寶中獲得";
 
 //編碼級(jí)別
 private static String CHARSET = "UTF-8";
 
 public static String refundOrder(AliRefundTO aliRefundTO){
 System.out.println("開始調(diào)用支付寶加密******************************************************");
 //實(shí)例化客戶端
  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同時(shí)存在的情況下取biz_content)。
  AlipayTradeRefundModel refundModel = new AlipayTradeRefundModel();
  refundModel.setTradeNo(aliRefundTO.getTrade_no());
  refundModel.setRefundAmount(aliRefundTO.getRefund_amount());
  refundModel.setRefundReason("商品退款");
  //實(shí)例化具體API對(duì)應(yīng)的request類,類名稱和接口名稱對(duì)應(yīng),當(dā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("支付寶退款錯(cuò)誤!",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);
 }
}

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

相關(guān)文章

最新評(píng)論