视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

商戶進(jìn)件
特約商戶進(jìn)件
基礎(chǔ)支付
JSAPI支付
APP支付
H5支付
Native支付
小程序支付
合單支付
付款碼支付
經(jīng)營(yíng)能力
支付即服務(wù)
點(diǎn)金計(jì)劃
行業(yè)方案
平臺(tái)收付通(商戶進(jìn)件)
平臺(tái)收付通(普通支付)
平臺(tái)收付通(合單支付)
平臺(tái)收付通(分賬)
平臺(tái)收付通(補(bǔ)差)
平臺(tái)收付通(退款)
平臺(tái)收付通(余額查詢)
平臺(tái)收付通(商戶提現(xiàn))
平臺(tái)收付通(注銷申請(qǐng))
平臺(tái)收付通(注銷后提現(xiàn))
平臺(tái)收付通(跨境付款)
平臺(tái)收付通(下載賬單)
智慧商圈
微信支付分停車服務(wù)
電子發(fā)票
營(yíng)銷工具
代金券
商家券
委托營(yíng)銷
支付有禮
小程序發(fā)券插件
H5發(fā)券
圖片上傳(營(yíng)銷專用)
現(xiàn)金紅包
資金應(yīng)用
分賬
連鎖品牌分賬
風(fēng)險(xiǎn)合規(guī)
商戶開戶意愿確認(rèn)
消費(fèi)者投訴2.0
商戶違規(guī)通知回調(diào)
其他能力
圖片上傳
視頻上傳
微信支付平臺(tái)證書

圖片上傳API

最新更新時(shí)間:2019-12-06 版本說(shuō)明

通過(guò)本接口上傳圖片后可獲得圖片url地址。圖片url可在微信支付營(yíng)銷相關(guān)的API使用,包括商家券、代金券、支付有禮等。

接口說(shuō)明

適用對(duì)象:服務(wù)商

請(qǐng)求URL:https://api.mch.weixin.qq.com/v3/marketing/favor/media/image-upload

請(qǐng)求主體類型:multipart/form-data

請(qǐng)求方式:POST


path 指該參數(shù)為路徑參數(shù)

query 指該參數(shù)需在請(qǐng)求URL傳參

body 指該參數(shù)需在請(qǐng)求JSON傳參


請(qǐng)求參數(shù)

參數(shù)名 變量 類型[長(zhǎng)度限制] 必填 描述
圖片文件 file message body 將媒體圖片進(jìn)行二進(jìn)制轉(zhuǎn)換,得到的媒體圖片二進(jìn)制內(nèi)容,在請(qǐng)求body中上傳此二進(jìn)制內(nèi)容。媒體圖片只支持JPG、BMP、PNG格式,文件大小不能超過(guò)2M。
示例值:pic1
+媒體文件元信息 meta Object body 媒體文件元信息,使用json表示,包含兩個(gè)對(duì)象:filename、sha256。
參數(shù)名 變量 類型[長(zhǎng)度限制] 必填 描述
文件名稱 filename string[1,128] 商戶上傳的媒體圖片的名稱,商戶自定義,必須以JPG、BMP、PNG為后綴。
示例值:filea.jpg
文件摘要 sha256 string[1,256] 圖片文件的文件摘要,即對(duì)圖片文件的二進(jìn)制內(nèi)容進(jìn)行sha256計(jì)算得到的值。
示例值:hjkahkjsjkfsjk78687dhjahdajhk

各語(yǔ)言請(qǐng)求示例


String filePath = "/your/home/hellokitty.png";
URI uri = new URI("https://api.mch.weixin.qq.com/v3/marketing/favor/media/image-upload");
File file = new File(filePath);

try (FileInputStream ins1 = new FileInputStream(file)) { 
  String sha256 = DigestUtils.sha256Hex(ins1);
  try (InputStream ins2 = new FileInputStream(file)) {
    HttpPost request = new WechatPayUploadHttpPost.Builder(uri)
        .withImage(file.getName(), sha256, ins2)
        .build();
    CloseableHttpResponse response1 = httpClient.execute(request);
  }
}
    

// 參考上述指引說(shuō)明,并引入 `MediaUtil` 正常初始化,無(wú)額外條件
use WechatPay\GuzzleMiddleware\Util\MediaUtil;
// 實(shí)例化一個(gè)媒體文件流,注意文件后綴名需符合接口要求
$media = new MediaUtil('/your/file/path/with.extension');

// 正常使用Guzzle發(fā)起API請(qǐng)求
try {
    $resp = $client->request('POST', 'https://api.mch.weixin.qq.com/v3/marketing/favor/media/image-upload', [
        'body'    => $media->getStream(),
        'headers' => [
            'Accept'       => 'application/json',
            'content-type' => $media->getContentType(),
        ]
    ]);
    // POST 語(yǔ)法糖
    $resp = $client->post('merchant/media/upload', [
        'body'    => $media->getStream(),
        'headers' => [
            'Accept'       => 'application/json',
            'content-type' => $media->getContentType(),
        ]
    ]);
    echo $resp->getStatusCode().' '.$resp->getReasonPhrase()."\n";
    echo $resp->getBody()."\n";
} catch (Exception $e) {
    echo $e->getMessage()."\n";
    if ($e->hasResponse()) {
        echo $e->getResponse()->getStatusCode().' '.$e->getResponse()->getReasonPhrase()."\n";
        echo $e->getResponse()->getBody();
    }
    return;
}
    

JAVA詳細(xì)請(qǐng)求示例詳見(jiàn):wechatpay-apache-httpclient

PHP詳細(xì)請(qǐng)求示例詳見(jiàn):wechatpay-guzzle-middleware

返回參數(shù)

參數(shù)名 變量 類型[長(zhǎng)度限制] 必填 描述
媒體文件URL地址 media_url string[1,256] 微信返回的媒體文件標(biāo)識(shí)url。有效期為永久
示例值:https://qpic.cn/xxx

返回示例


{
"media_url": "https://qpic.cn/xxx"
}
                                

    http://2323weixin.qq.com
                                

請(qǐng)求步驟

圖片上傳步驟:

1.創(chuàng)建一個(gè)POST的方法請(qǐng)求/upload URI


例如: POST https://api.mch.weixin.qq.com/v3/marketing/favor/media/image-upload HTTP/1.1


2.將文件的數(shù)據(jù)添加到請(qǐng)求主體


2.1 圖片文件file參數(shù)的獲取方式說(shuō)明:
媒體圖片二進(jìn)制內(nèi)容,放在請(qǐng)求http的body中。


2.2 媒體文件元信息meta參數(shù)的獲取方式說(shuō)明:
媒體文件元信息,使用json表示,包含兩個(gè)對(duì)象:filename、sha256。
● filename參數(shù)獲取方式說(shuō)明:
商戶上傳的媒體圖片的名稱,商戶自定義,必須以JPG、BMP、PNG為后綴。
● sha256參數(shù)獲取方式說(shuō)明:
圖片文件的文件摘要,即對(duì)圖片文件的二進(jìn)制內(nèi)容進(jìn)行sha256計(jì)算得到的值。


2.3 簽名計(jì)算說(shuō)明:
簽名生成
參與簽名計(jì)算的請(qǐng)求主體為meta的json串:
{ "filename": "filea.jpg", "sha256": "hjkahkjsjkfsjk78687dhjahdajhk" }


待簽名串示例:

POST
/v3/marketing/favor/media/image-upload
1566987169           //時(shí)間戳
12ced2db6f0193dda91ba86224ea1cd8   //隨機(jī)數(shù)
{"filename":" filea.jpg ","sha256":"hjkahkjsjkfsjk78687dhjahdajhk"}

3.添加HTTP頭:


Content-Type:multipart/form-data.設(shè)置為要上載的對(duì)象的MIME媒體類型。
Authorization: WECHATPAY2-SHA256-RSA2048 mchid="1900231671",
nonce_str="PCHK6HSOEDTACETP6P3AL7DWPHTBKIAT",timestamp="1567067659",
serial_no="1FB89742D19F2BD30B69948D16DECA0FCB4481EB",
signature="PB6M7+3JL7TSCl5zqD1sdWVypOIEQsD4dgOU+vPiVM6GMRo2qYSWKf8u46i9ZJFhyZTBdZ7SFR+BjDZh6
89hFgN8LZL+QWTvq3cse/FEUFYyOLN7L/2IZX4GA4cWInuJ2MpOhZRMpm+emrcn42gTMKAPNQ7dBLO7ux6MoSuQp69
PW+p1ogmkER68exTVUXYqA5P3vITlWNr++RDy2+ExvB7qVISOKW0vBkxUxN9e7hwUbDwGln170ZXomoO1KpQSbw3f1u
WUCx/IlWJhJIun7rUMtVT+kfijNUqcILtSfE4hWKKVaZn9j5CX8M7aKbbDOFy3SvbSJ3WQgRnRbgog5w=="
Content-Type: multipart/form-data;boundary=boundary

4.添加body:


// 以下為body的內(nèi)容
--boundary  // boundary為商戶自定義的一個(gè)字符串
Content-Disposition: form-data; name="meta";
Content-Type: application/json
//此處必須有一個(gè)空行
{ "filename": "filea.jpg", "sha256": "hjkahkjsjkfsjk78687dhjahdajhk" }
--boundary
Content-Disposition: form-data; name="file"; filename="filea.jpg";
Content-Type: image/jpg
//此處必須有一個(gè)空行
pic1  //pic1即為媒體圖片的二進(jìn)制內(nèi)容
--boundary--

說(shuō)明:請(qǐng)求包體每行結(jié)尾都需要包含\r\n(空行也需要)。


5.發(fā)送請(qǐng)求


POST /v3/marketing/favor/media/image-upload HTTP/1.1
Host: api.mch.weixin.qq.com
Authorization: WECHATPAY2-SHA256-RSA2048 
mchid="1900231671",nonce_str="PCHK6HSOEDTACETP6P3AL7DWPHTBKIAT",
timestamp="1567067659",
serial_no="1FB89742D19F2BD30B69948D16DECA0FCB4481EB",
signature="PB6M7+3JL7TSCl5zqD1sdWVypOIEQsD4dgOU+vPiVM6GMRo2qYSWKf8u46i9ZJFhyZTBdZ7
SFR+BjDZh689hFgN8LZL+QWTvq3cse/FEUFYyOLN7L/2IZX4GA4cWInuJ2MpOhZRMpm+emrcn42gTMKAPN
Q7dBLO7ux6MoSuQp69PW+p1ogmkER68exTVUXYqA5P3vITlWNr++RDy2+ExvB7qVISOKW0vBkxUxN9e
7hwUbDwGln170ZXomoO1KpQSbw3f1uWUCx/IlWJhJIun7rUMtVT+kfijNUqcILtSfE4hWKKVaZn9j5CX8M
7aKbbDOFy3SvbSJ3WQgRnRbgog5w=="
Content-Type: multipart/form-data;boundary=boundary

--boundary  
Content-Disposition: form-data; name="meta";
Content-Type: application/json

{ "filename": "filea.jpg", "sha256": "hjkahkjsjkfsjk78687dhjahdajhk" }
--boundary
Content-Disposition: form-data; name="file"; filename="filea.jpg";
Content-Type: image/jpg

pic1
--boundary--

錯(cuò)誤碼公共錯(cuò)誤碼

狀態(tài)碼 錯(cuò)誤碼 描述 解決方案
400

PARAM_ERROR

圖片文件為空 商戶更換文件后,重新調(diào)用
403 REQUEST_BLOCKED 未知圖片類型 圖片類型必須為JPG、BMP、PNG
圖片meta信息不一致 請(qǐng)檢查meta信息是否正確
簽名信息不匹配 請(qǐng)檢查簽名信息


技術(shù)咨詢

文檔反饋