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

微信支付 API v3

這篇具有很好參考價(jià)值的文章主要介紹了微信支付 API v3。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 獲取商戶API證書

登錄商戶平臺(tái)【API安全】->【API證書】->【查看證書】,可查看商戶API證書序列號(hào)。

商戶API證書和微信支付平臺(tái)證書均可以使用第三方的證書解析工具,查看證書內(nèi)容?;蛘呤褂胦penssl命令行工具查看證書序列號(hào)。

/*
* 加載私鑰
* Read private key from file
*
* @param string    $filepath     PEM encoded private key file path
* 
* @return resource|bool     Private key resource identifier on success, or FALSE on error
*/
public static function getPrivateKey($filepath) {
    return openssl_get_privatekey(file_get_contents($filepath));
}


2. 調(diào)用支付API生成簽名生成

商戶可以按照下述步驟生成請(qǐng)求的簽名。

1. 構(gòu)造簽名串

我們希望商戶的技術(shù)開發(fā)人員按照當(dāng)前文檔約定的規(guī)則構(gòu)造簽名串。微信支付會(huì)使用同樣的方式構(gòu)造簽名串。如果商戶構(gòu)造簽名串的方式錯(cuò)誤,將導(dǎo)致簽名驗(yàn)證不通過。下面先說明簽名串的具體格式。

簽名串一共有五行,每一行為一個(gè)參數(shù)。行尾以 \n(換行符,ASCII編碼值為0x0A)結(jié)束,包括最后一行。如果參數(shù)本身以\n結(jié)束,也需要附加一個(gè)\n。

HTTP請(qǐng)求方法\n        
URL\n
請(qǐng)求時(shí)間戳\n
請(qǐng)求隨機(jī)串\n
請(qǐng)求報(bào)文主體\n

第一步,獲取HTTP請(qǐng)求的方法(GET,POST,PUT)等

GET

第二步,獲取請(qǐng)求的絕對(duì)URL,并去除域名部分得到參與簽名的URL。如果請(qǐng)求中有查詢參數(shù),URL末尾應(yīng)附加有'?'和對(duì)應(yīng)的查詢字符串。

/v3/certificates

第三步,獲取發(fā)起請(qǐng)求時(shí)的系統(tǒng)當(dāng)前時(shí)間戳,即格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù),作為請(qǐng)求時(shí)間戳。微信支付會(huì)拒絕處理很久之前發(fā)起的請(qǐng)求,請(qǐng)商戶保持自身系統(tǒng)的時(shí)間準(zhǔn)確。

$ date +%s
1554208460

第四步,生成一個(gè)請(qǐng)求隨機(jī)串,可參見生成隨機(jī)數(shù)算法。這里,我們使用命令行直接生成一個(gè)。

$ hexdump -n 16 -e '4/4 "%08X" 1 "\n"' /dev/random
593BEC0C930BF1AFEB40B4A08C8FB242

第五步,獲取請(qǐng)求中的請(qǐng)求報(bào)文主體(request body)。文章來源地址http://www.zghlxwxcb.cn/news/detail-676056.html

  • 請(qǐng)求方法為GET時(shí),報(bào)文主體為空。
  • 當(dāng)請(qǐng)求方法為POST或PUT時(shí),請(qǐng)使用真實(shí)發(fā)送的JSON報(bào)文。
  • 圖片上傳API,請(qǐng)使用meta對(duì)應(yīng)的JSON報(bào)文。
  • 接口參數(shù) json格式
  • $url3 = "https://api.mch.weixin.qq.com/v3/refund/domestic/refunds";
    // 微信 V3 退款
    $mch_private_key = openssl_get_privatekey(file_get_contents($api_key));//私鑰
    $serial_no = '**************************'; // 序列號(hào)
    
    // 生成token 驗(yàn)簽
    $http_method = 'POST';
    $timestamp = time();//時(shí)間戳
    $nonce = $str_32;//隨機(jī)串
    $body = json_encode($data_record2); // 接口參數(shù)
    
    $url_parts = parse_url($url3); # 接口地址
    $canonical_url = ($url_parts['path'] . (!empty($url_parts['query']) ?"?${url_parts['query']}" : ""));
    $message = $http_method."\n".
    $canonical_url."\n".
    $timestamp."\n".
    $nonce."\n".
    $body."\n";

3.計(jì)算簽名值

openssl_sign($message, $raw_sign, $mch_private_key, 'sha256WithRSAEncryption');
$sign = base64_encode($raw_sign);

$schema = 'WECHATPAY2-SHA256-RSA2048';
$token =sprintf('mchid="%s",nonce_str="%s",timestamp="%d",serial_no="%s",signature="%s"',
                    $mch_id, $nonce, $timestamp, $serial_no, $sign);
$headerArray = [
    'Accept: application/json',
    'User-Agent: */*',
    'Content-Type: application/json; charset=utf-8',
    "Authorization: {$schema} {$token}",
    "Wechatpay-Serial:{$serial_no}"
];


$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url3);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data_record2));
curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output3 = curl_exec($curl);
$output3 = json_decode($output3,true);

到了這里,關(guān)于微信支付 API v3的文章就介紹完了。如果您還想了解更多內(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微信支付v3系列——6.微信支付查詢訂單API

    java微信支付v3系列——1.微信支付準(zhǔn)備工作 java微信支付v3系列——2.微信支付基本配置 java微信支付v3系列——3.訂單創(chuàng)建準(zhǔn)備操作 java微信支付v3系列——4.創(chuàng)建訂單的封裝及使用 java微信支付v3系列——5.微信支付成功回調(diào) java微信支付v3系列——6.微信支付查詢訂單API java微信支

    2023年04月08日
    瀏覽(30)
  • C# 獲取電腦序列號(hào)和主板序列號(hào)

    項(xiàng)目中有需求要從軟件中獲取當(dāng)前電腦的整機(jī)序列號(hào)和主板序列號(hào),研究一番,C#的實(shí)現(xiàn)如下: 對(duì)于主流的計(jì)算機(jī)產(chǎn)品來說,這兩個(gè)方法都沒有問題。 但是對(duì)于一些行業(yè)定制的產(chǎn)品,比如某些加固平板,加固筆記本等設(shè)備,主板序列號(hào)可能是缺失的,要具體問題具體分析了。

    2024年02月16日
    瀏覽(97)
  • QT軟件開發(fā): 獲取CPU序列號(hào)、硬盤序列號(hào)、主板序列號(hào) (采用wmic命令)

    QT軟件開發(fā): 獲取CPU序列號(hào)、硬盤序列號(hào)、主板序列號(hào) (采用wmic命令)

    QT版本: ? 5.12.6 環(huán)境: win10 64位 編譯器: MinGW 32 通過wmic 命令獲取CPU序列號(hào)、硬盤序列號(hào)、主板序列號(hào)、CPU名稱等信息。 做軟件加密、數(shù)據(jù)加密、軟件1機(jī)1碼綁定的場合比較實(shí)用。 WMIC擴(kuò)展WMI(Windows Management Instrumentation,Windows管理工具) ,提供了從命令行接口和批命令腳本執(zhí)行

    2024年02月07日
    瀏覽(110)
  • Android設(shè)備序列號(hào):如何獲取和查找您的Android設(shè)備的序列號(hào)

    Android設(shè)備序列號(hào):如何獲取和查找您的Android設(shè)備的序列號(hào) 在使用Android設(shè)備時(shí),有時(shí)候需要查找設(shè)備的序列號(hào)來進(jìn)行診斷、維修或者進(jìn)行其他操作。本文將介紹如何獲取和查找Android設(shè)備的序列號(hào),并提供相應(yīng)的源代碼示例。 Android設(shè)備的序列號(hào)是一個(gè)唯一的標(biāo)識(shí)符,用于區(qū)分

    2024年02月07日
    瀏覽(111)
  • java獲取linux和window序列號(hào)

    java獲取linux和window序列號(hào)

    獲取系統(tǒng)序列號(hào)在Java中并不是一個(gè)直接支持的功能,因?yàn)镴ava語言本身并不提供直接訪問硬件級(jí)別的信息,如CPU序列號(hào)。但是,我們可以使用一些平臺(tái)特定的工具或命令來實(shí)現(xiàn)這一功能。下面我將展示如何使用Java獲取Windows和Linux系統(tǒng)上的CPU序列號(hào)、磁盤、mac地址等信息,及使

    2024年01月24日
    瀏覽(94)
  • Android 12.0默認(rèn)授予app獲取序列號(hào)SerialNo權(quán)限

    在12.0的系統(tǒng)rom定制化中,在一些第三方app開發(fā)中,會(huì)獲取序列號(hào)等屬性,而在10.0以后的高版本對(duì)于獲取系統(tǒng)屬性的相關(guān)信息要求嚴(yán)格 必須有權(quán)限才可以,10.0以前的Android版本中,可以直接通過調(diào)用Build.SERIAL來獲取序列號(hào),在高版本中,為了保護(hù)個(gè)人隱私, 不讓第三方應(yīng)用輕

    2024年02月07日
    瀏覽(89)
  • QT6 C++獲取Window系統(tǒng)計(jì)算機(jī)的主機(jī)BIOS序列號(hào)源代碼

    這是自己用QT6 C++編程語言開發(fā)的獲取主機(jī)BIOS序列號(hào)的程序。經(jīng)過調(diào)試,可以在Window10系統(tǒng)和Win7系統(tǒng)運(yùn)行。

    2024年02月09日
    瀏覽(93)
  • java對(duì)接微信支付api3心得(小白易懂)

    java對(duì)接微信支付api3心得(小白易懂)

    ????????公司做的項(xiàng)目中,需要支付功能,因?yàn)樽龅奈⑿判〕绦蝽?xiàng)目,所以直接就用微信支付了,以前我也對(duì)接過微信支付,但以前沒有java的sdk,并且還是用的xml報(bào)文,我們還得解析xml才行,所以麻煩的很,這次對(duì)接突然發(fā)現(xiàn),微信已經(jīng)提供了好多中語言的sdk,其中也包

    2024年02月03日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包