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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java微信web支付开发_微信支付java开发详细第三方支付功能开发之支付宝web端支...

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java微信web支付开发_微信支付java开发详细第三方支付功能开发之支付宝web端支... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這段時間把支付基本搞完了,因為做的過程中遇到許多問題,特地記錄下來,同時方便其他java coder,廢話少說,下面開始。

整體思路:在后臺,根據參數創建支付寶客戶端AlipayClient,發送參數到支付寶,支付寶直接返回一個表單,我們只需要將表單輸出到頁面上,后續支付寶異步通知,比較重要是驗簽,支付寶也提供的工具,比較方便。微信支付java開發詳細

(jar包或maven的引入這里省略)

1、申請支付寶支付,這里大家自己研究,網上很多教程。

2、創建支付

/**

* 調用支付寶支付alipay.trade.page.pay

* 商戶系統請求支付寶接口alipay.trade.page.pay,支付寶對商戶請求參數進行校驗,而后重定向至用戶登錄頁面。

*

* @param model

* @return

* @throws Exception

*/

public String createAlipay(Model model, String order_no, BigDecimal amount, Integer resource_trad_id, String trad_type, HttpServletResponse response) throws Exception {

String form = "";

User user = (User) model.asMap().get("user");

//生成一筆預付訂單流水

String trad_no = "PC_ALIPAY" + OrderNoUtil.leadsNo();//訂單流水號

ShareUserTrad trad = new ShareUserTrad();

trad.setResourceTradId(resource_trad_id);

trad.setUserId(user.getId());

trad.setCreatedBy(user.getId());

trad.setLastUpdBy(user.getId());

trad.setOnlineOfflineFlag("0");//線上

trad.setOrderNo(order_no);

trad.setUserTradAmount(amount);

trad.setTradMethod("3");//支付寶

trad.setPayReceiveFlag("2");//支出

trad.setSuccessFlag("0");//交易進行中

trad.setTradType("1");//訂單支付

trad.setTradNo(trad_no);

trad.setModifyNum(0);

shareUserTradMapper.insertSelective(trad);

try {

//初始化客戶端

AlipayClient alipayClient = new DefaultAlipayClient(Config.alipay_url, Config.alipay_appid, Config.alipay_app_private_key, Config.alipay_format, Config.alipay_charset, Config.alipay_app_public_key, Config.alipay_sign_type);

//創建API對應的request

AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();

alipayRequest.setReturnUrl("");//回退到訂單列表頁面

alipayRequest.setNotifyUrl("");//在公共參數中設置回跳和通知地址

alipayRequest.setBizContent("{" +

" \"out_trade_no\":\"" + trad_no + "\"," +

" \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +

//" \"total_amount\":" + amount.toString() + "," +

"\"total_amount\":\"0.01\"," +

" \"subject\":\"訂單支付\"," +

" \"body\":\"訂單:" + order_no + "支付\"," +

" \"passback_params\":\"" + order_no + "\"" +

" }");//填充業務參數

form = alipayClient.pageExecute(alipayRequest).getBody(); //調用SDK生成表單

} catch (Exception e) {

e.printStackTrace();

String sOut = "";

StackTraceElement[] trace = e.getStackTrace();

for (StackTraceElement s : trace) {

sOut += "\tat " + s + "\r\n";

}

model.addAttribute("failMsg", sOut + "alipay_url:" + Config.alipay_url);

return "/pay/payFail";

}

response.setContentType("text/html;charset=" + Config.alipay_charset);

response.getWriter().write(form);//直接將完整的表單html輸出到頁面

response.getWriter().flush();

response.getWriter().close();

return null;

}

本文來自電腦雜談,轉載請注明本文網址:

http://www.pc-fly.com/a/sanxing/article-70423-1.html

總結

以上是生活随笔為你收集整理的java微信web支付开发_微信支付java开发详细第三方支付功能开发之支付宝web端支...的全部內容,希望文章能夠幫你解決所遇到的問題。

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