国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【微信支付】springboot-java接入微信支付-JSAPI支付/查單/退款/發(fā)送紅包(二)---查單

這篇具有很好參考價(jià)值的文章主要介紹了【微信支付】springboot-java接入微信支付-JSAPI支付/查單/退款/發(fā)送紅包(二)---查單。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

上篇文章我們已經(jīng)結(jié)束了微信支付準(zhǔn)備工作以及JSAPI調(diào)起支付

文章地址:https://blog.csdn.net/ssdadasd15623/article/details/134684556

接下來實(shí)現(xiàn),付款后的查單操作

查詢訂單分為微信訂單號(hào)查詢以及商戶訂單號(hào)查詢,這里使用商戶訂單號(hào),也就是自己的系統(tǒng)的訂單號(hào)

查看微信支付文檔-商戶訂單號(hào)查詢訂單

https://pay.weixin.qq.com/docs/merchant/apis/jsapi-payment/query-by-out-trade-no.html
【微信支付】springboot-java接入微信支付-JSAPI支付/查單/退款/發(fā)送紅包(二)---查單,java,spring boot,微信

在請(qǐng)求接口時(shí),注意??:請(qǐng)求參數(shù)內(nèi)的Authorization參數(shù)需要提前生成
https://pay.weixin.qq.com/docs/merchant/development/interface-rules/signature-generation.html
在這里微信支付給出了明確的文檔教我們?nèi)绾螛?gòu)造請(qǐng)求簽名

【微信支付】springboot-java接入微信支付-JSAPI支付/查單/退款/發(fā)送紅包(二)---查單,java,spring boot,微信

構(gòu)造請(qǐng)求簽名串

  1. 第一步是請(qǐng)求方式,這里查詢訂單是“GET”
  2. 第二步是請(qǐng)求的絕對(duì)URL,這里請(qǐng)求地址是“
    https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{out_trade_no}”,微信給出示例代碼如何獲取絕對(duì)URL,例如訂單號(hào)為202401010001,商戶號(hào)為12345678
HttpUrl httpurl = HttpUrl.parse("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/202401010001?mchid=12345678"); //使用okhttp3 SDK
  1. 第三步是當(dāng)前時(shí)間戳,這里使用currentTimeMillis()方法生成時(shí)間戳
long timestamp = System.currentTimeMillis() / 1000; //生成時(shí)間戳
  1. 第四步是請(qǐng)求隨機(jī)字符串,這里微信支付的工具類給出了生成隨機(jī)字符串的方法
String nonceStr = WXPayUtil.generateNonceStr(); //生成隨機(jī)字符串
  1. 最后是請(qǐng)求報(bào)文主體,這里是GET方法,沒有請(qǐng)求體,所以就是一個(gè)空的字符串
  2. 最終組合在一起的字符串為
GET\n  //請(qǐng)求方式
/v3/pay/transactions/out-trade-no/202401010001?mchid=12345678\n //請(qǐng)求地址絕對(duì)路徑
1554208460\n //時(shí)間戳
593BEC0C930BF1AFEB40B4A08C8FB242\n //隨機(jī)字符串
\n

??每行內(nèi)容后需添加換行符‘\n‘

完整代碼:

Controller.java文件

......

	@Autowired
    private WxPayConfig wxPayConfig; //存放微信基本配置數(shù)據(jù)


	@GetMapping("/get_order_status")
    public Map<String, Object> get_authorization(@RequestParam String order_no) throws IOException, SignatureException, NoSuchAlgorithmException, InvalidKeyException {
        Map<String, Object> map = new HashMap<>();
        String schema = "WECHATPAY2-SHA256-RSA2048 "; //注意這個(gè),有一個(gè)空格
        HttpUrl httpurl = HttpUrl.parse("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/" + order_no + "?mchid=" + wxPayConfig.getMchId()); //構(gòu)造參與簽名的URL
        HttpGet httpGet = new HttpGet("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/" + order_no + "?mchid=" + wxPayConfig.getMchId());

        httpGet.setHeader("Authorization", schema + getToken("GET", httpurl, "")); //微信支付文檔說明,GET請(qǐng)求時(shí)body為空
        httpGet.setHeader("Accept", "application/json;charset=utf-8");

        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        CloseableHttpResponse response = httpClient.execute(httpGet);
        // 獲取響應(yīng)狀態(tài)碼
        int statusCode = response.getStatusLine().getStatusCode();
        // 獲取響應(yīng)內(nèi)容
        String responseBody = EntityUtils.toString(response.getEntity());
        // 關(guān)閉響應(yīng)對(duì)象
        response.close();
        map.put("code", statusCode);
        map.put("data", responseBody);
        return map;
    }


String getToken(String method, HttpUrl url, String body) throws UnsupportedEncodingException, SignatureException, NoSuchAlgorithmException, InvalidKeyException {
        String nonceStr = WXPayUtil.generateNonceStr(); //WXPayUtil是微信支付自帶的sdk
        long timestamp = System.currentTimeMillis() / 1000; //生成時(shí)間戳
        String message = buildMessage(method, url, timestamp, nonceStr, body); 
        String signature = sign(message.getBytes("utf-8"));

        return "mchid=\"" + wxPayConfig.getMchId() + "\","
                + "nonce_str=\"" + nonceStr + "\","
                + "timestamp=\"" + timestamp + "\","
                + "serial_no=\"" + wxPayConfig.getMchSerialNo() + "\"," //mchserialNo是微信支付中申請(qǐng)的證書序列號(hào)
                + "signature=\"" + signature + "\"";
    }

    String sign(byte[] message) throws InvalidKeyException, SignatureException, NoSuchAlgorithmException {
        Signature sign = Signature.getInstance("SHA256withRSA");
        sign.initSign(wxPayConfig.getPrivateKey());
        sign.update(message);

        return Base64.getEncoder().encodeToString(sign.sign());
    }

    String buildMessage(String method, HttpUrl url, long timestamp, String nonceStr, String body) {
        String canonicalUrl = url.encodedPath();
        if (url.encodedQuery() != null) {
            canonicalUrl += "?" + url.encodedQuery();
        }

        return method + "\n"
                + canonicalUrl + "\n"
                + timestamp + "\n"
                + nonceStr + "\n"
                + body + "\n";
    }
......

使用apifox測試結(jié)果:
【微信支付】springboot-java接入微信支付-JSAPI支付/查單/退款/發(fā)送紅包(二)---查單,java,spring boot,微信文章來源地址http://www.zghlxwxcb.cn/news/detail-777969.html

到了這里,關(guān)于【微信支付】springboot-java接入微信支付-JSAPI支付/查單/退款/發(fā)送紅包(二)---查單的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java對(duì)接微信支付:JSAPI支付成功之“微信回調(diào)”

    承接上一篇微信支付,現(xiàn)在簡單說一下 微信支付回調(diào) 目錄 一、支付回調(diào) 二、微信回調(diào)地址問題 1.本地/上線測試 2.控制器調(diào)用接口(代碼) 總結(jié) 當(dāng)用戶支付成功之后,支付平臺(tái)會(huì)向我們指定的服務(wù)器接口發(fā)送請(qǐng)求傳遞訂單支付狀態(tài)數(shù)據(jù) 如果你是再本地進(jìn)行測試,那就需要使用

    2024年02月12日
    瀏覽(30)
  • java微信公眾號(hào)JSAPI支付以及所遇到的坑

    上周做了個(gè)支付寶微信掃碼支付,今天總結(jié)一下。微信相比支付寶要麻煩許多 由于涉及到代理商,沒辦法,讓我寫個(gè)詳細(xì)的申請(qǐng)流程,懵逼啊。 筆記地址?http://note.youdao.com/noteshare?id=269ddffb1f95e69eafb281d054f9ff25sub=82AACBC2E6814133938D407BD3FF4737 先梳理下流程,對(duì)應(yīng)的文檔 微信統(tǒng)一下

    2024年02月08日
    瀏覽(23)
  • java微信小程序支付-回調(diào)(Jsapi-APIv3)

    ? ? ? ? 準(zhǔn)備: ?接入前準(zhǔn)備-小程序支付 | 微信支付商戶平臺(tái)文檔中心 準(zhǔn)備好了就可以獲得( 第二點(diǎn)里需要的參數(shù) ): ????????參數(shù)1?商戶號(hào) merchantId:xxxxxx(全是數(shù)字) ????????參數(shù)2?商戶APIV3密鑰 apiV3key:xxxxxxx(32位字母數(shù)字大小寫串,開發(fā)自己準(zhǔn)備的) ????????參

    2024年02月08日
    瀏覽(35)
  • 【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包

    【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包

    ? ? ? 對(duì)于一個(gè)沒有寫過支付的小白,打開微信支付官方文檔時(shí)徹底懵逼 ,因?yàn)?微信支付文檔太過詳細(xì), 導(dǎo)致我無從下手,所以寫此文章,幫助第一次寫支付的小伙伴梳理一下。 一、流程分為三個(gè)接口:(這是前言,先看一遍,保持印象,方便理解代碼) 1、第一個(gè)接口:

    2024年02月03日
    瀏覽(30)
  • 【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包(包含支付出現(xiàn)的多次回調(diào)的問題解析,接口冪等性)

    【微信小程序】Java實(shí)現(xiàn)微信支付(小程序支付JSAPI-V3)java-sdk工具包(包含支付出現(xiàn)的多次回調(diào)的問題解析,接口冪等性)

    ? ? ? 對(duì)于一個(gè)沒有寫過支付的小白,打開微信支付官方文檔時(shí)徹底懵逼 ,因?yàn)?微信支付文檔太過詳細(xì), 導(dǎo)致我無從下手,所以寫此文章,幫助第一次寫支付的小伙伴梳理一下。 一、流程分為三個(gè)接口:(這是前言,先看一遍,保持印象,方便理解代碼) 1、第一個(gè)接口:

    2024年01月16日
    瀏覽(28)
  • 微信的 h5 支付和 jsapi 支付

    微信的 h5 支付和 jsapi 支付

    申請(qǐng)地址: https://pay.weixin.qq.com/ 如果你還沒有微信商戶號(hào),請(qǐng)點(diǎn)擊上面的鏈接進(jìn)行申請(qǐng),如果已經(jīng)有了,可以跳過這一步 首先點(diǎn)擊 賬戶中心 ? API安全 ? 申請(qǐng)API證書 申請(qǐng)?jiān)敿?xì)步驟: https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 首先點(diǎn)擊 賬戶中心 ? API安全 ? 設(shè)置APIv3密鑰 ?

    2024年02月13日
    瀏覽(16)
  • 【微信公眾號(hào)】微信 jsapi 支付大概流程

    【微信公眾號(hào)】微信 jsapi 支付大概流程

    jsapi 支付可運(yùn)用于微信小程序和 h5 jsapi 支付不會(huì)彈出二維碼(這點(diǎn)與 native 支付不同) jsapi 支付運(yùn)用于移動(dòng)端 native 支付運(yùn)用于 PC 端 ?? 微信支付需要商家申請(qǐng) 商戶號(hào) ,商務(wù)號(hào)需要和小程序或公眾號(hào)(服務(wù)號(hào))進(jìn)行綁定 ?? 在微信商務(wù)平臺(tái)可開通 native 支付、jsapi 支付或其

    2024年02月09日
    瀏覽(20)
  • JAVA接入小程序微信支付

    JAVA接入小程序微信支付

    1、在 微信公眾平臺(tái) 注冊應(yīng)用,并保存好appId和appSecret 2、在微信支付商戶平臺(tái) 注冊一個(gè)商戶,保存好mchId(商戶id)、api_key(支付密鑰)、以及商戶證書序列號(hào)。還需要將支付商戶密鑰文件下載放到項(xiàng)目resources目錄中 (結(jié)構(gòu)中包含的其他內(nèi)容與支付無關(guān)) 1、導(dǎo)入jar包 2、在y

    2024年04月14日
    瀏覽(22)
  • uniapp微信小程序JSAPI支付前端生成簽名,并調(diào)起微信支付

    簽名方式使用的是SHA256withRSA 插件 npm install jsrsasign 使用

    2024年01月17日
    瀏覽(94)
  • 微信支付(JSAPI支付)/支付寶支付(手機(jī)網(wǎng)站支付)實(shí)現(xiàn)思路及實(shí)現(xiàn)方案-無源碼

    微信支付(JSAPI支付)/支付寶支付(手機(jī)網(wǎng)站支付)實(shí)現(xiàn)思路及實(shí)現(xiàn)方案-無源碼

    停車系統(tǒng) 一個(gè)二維碼同時(shí)支持微信及支付寶掃碼付款,使用手機(jī)網(wǎng)站實(shí)現(xiàn) 臨時(shí)車費(fèi)用繳費(fèi)二維碼需要通知支持微信及支付寶。 用戶繳納的停車費(fèi)直接到各個(gè)商戶的賬戶上,不經(jīng)過停車系統(tǒng)開發(fā)公司。 微信:使用微信服務(wù)商提供的服務(wù) 支付寶:使用支付服務(wù)商提供的服務(wù) 兩

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包