接口说明

消息订阅接口说明 #

消息类型接口通过webhook方式平台通过POST方式主动推送消息。供应商订阅消息,接收消息推送。消息类型包含( 订单消息,商品消息,售后消息,账单消息等)。

调用流程
由平台方(中车福利商城)发起POST请求,供应商接收消息推送,并解密消息内容,处理完成之后返回{"success":true} ,如果供应商不是返回{"success":true"},平台方会2分钟重新发起当前请求,最多发送3次
订阅地址
供应商订阅地址需要提供给平台方,平台方将消息推送到订阅地址。可以通过供应商后台->企业信息->WebHook更新。
消息加密 平台通过3DES加密方式加密消息内容,加密模式为ECB,供应商需要解密消息内容。编码统一为UTF-8。密钥由平台方提供。 可以通过供应商后台->企业信息->3DES Key 查看;也可以通过获取供应商信息接口查询。

WebHook请求说明 #

平台请求方式 #

POST {{供应商提供的url}}

平台消息类型(code) #

消息类型(code) 说明
ORDER_PAID 订单支付
ORDER_DONE 订单完成(确认收货)
ORDER_CANCEL 订单取消
PRODUCT_CHECKED 商品审核
AFTER_SALE 售后通知
BILL_NOTICE 账单通知

平台请求类型 #

  • Content-Type: application/json

平台请求参数(body) #

参数名 类型 是否必填 说明
code string 消息类型,见上文定义
content string 消息内容加密后的字符串,base64编码;base64Encode(3DECEncrypt(content))
request_uuid string 请求唯一标识,平台方生成
notice_at string 消息产生时间,格式为RFC3339

平台请求示例(body) #

{
  "code": "ORDER_CREATED",
  "content": "+2yCtnucFxgf081QMKUd4qOtA2GzVubAvaL0JA7YB0t2PFB/XLqgdNEJRgqmoDER/RBm2cJF/gsVUrD4aumT8FKNT4+s6abPgGb1BCCw3cV+k2HUFHIbYoeO1fwhYrO4Qq5Jd99bkjuEkvAuHggjLPkfRV5TcN4OJ+0/+bHbf2lpiKP8tsZE0oX/wkTKLw8paYij/LbGRNJ1yCjH/KTpCLvBqNQX8daZbhPhqfax0qaFGTarByVZMPtrf3qqgscfD4burIHDQuHGjlSkdKmqjQn0PXPmoUi0mvWitesJ1Bco57C+tQgVQEilBbu2oVqX3Rf7SOysHsnIHBzwaGcBobzMo19q7gEbLrFl3yjIOqN891kBobALh6rK0updM1lJU2BvB1GqjAk9B0xjdVt3kSlJjUY+uxKCBn2PJisM1UJiYEvVocgjBikz9ldOJSE/IdO9i0Hao9sstqKcyaIdMB3d8dGtJDJZs1/UbX45db9x3WSzrxTj1dbgIFtM/2xQzSqLRZ6cx1t5W3kHGF/I6HjaPCV15k4XlhQDZdkCHzPsJFXJ0NNyVjVCGL+NobYsJk7OcgBcnakfu12+mhXWR7f4MUQpTq4adB9VCdNcrn/RaCkCuDBFTaUiXsqPCxwzd504xc8cMhXR6gsoV2ZiMvtrbnjG3UJfxQ1rbEsxOjsWkBk/xLRZWeXxw6HwobuGBmbSrxKyNrmJpTe9sJpM0MYQTuDrxQ04jfh8jGxfWngLciz7/wh/sijKXx7rM1jdhRk2qwclWTD7a396qoLHH3AgMnsMB73ERMp8Wpf1oByvpZXLsXDe0X5vpl6adR0qxLkLD53eCemR/VQTBA3oDMynzCCP+35doEHYNyGBz53l8cOh8KG7hkCw97Okafatv7lxQYmowtFaMRQfis7Ym7TZ1pddRMmlwzvXY259aG+cyOFUNsV7JfCeJeifjqbOY1k/P8zNuGbmVoo1Aj9K9xwBHgW7nHWBaCslbwLM3EdXV3LWMgcrQOY6TrcoSGgarmnCi03iHnQmLi4izws+acm9fq6Mw7Pq76WALiJRXubtDc3mDGRktL9sgT8AtyEAaQ2zwNfQfLUZc8TrLJM9zrN8cvgbrhGzU1zajm/h9G3wSAgydIK6YxLxAE72ztPQvpnRgfKTbM3OwcbuAoffkcYJDJfLMl7o9OY/yIQDoi/TCBM/4pcxcHvYce/msOzhwnAbtV7HMN7IHBzwaGcBoRlLMElq5GqAyBwc8GhnAaG6lMUfa+PynICPCcQlFBe2X/uznPipx2v8N6NN2Iiub8gcHPBoZwGhbLxGGffa/kT0tFnhrAX/Yl/7s5z4qcdr+R6k5B3mz1N72HHv5rDs4YOUIucZ8x5k9TzLjiZcbZqKAcJDWcSL/OY9OSDhzr8H3J5vblQb5zk=",
  "notice_at": "2024-05-26T22:10:56+08:00",
  "request_uuid": "37c0ce55-b196-4b5a-a98d-019e33de8cff"
}

注意 供应商获取消息内容后,需要解密消息内容:base64Decode(3DECDecrypt(content)),解密后的内容为json字符串,消息内容格式见具体消息类型接口文档。

解密示例 #

  • 3DES密钥:
    • ce7185a0b19df316dda81ad6
  • 加密后内容:
    • zFCFrqFFfF5QO013SMvo2G5yjaFzW/9N9dD5y39DICEvLjCyeCypvSucY7wtnKjMp6fCmpnITtRwDAkVNZ4CzYl9yNFzTMLIzxFAgit+xo2oHreuCPDcYsl7x32Nnr/v
  • 解密后内容:
    • [{"code":"6642547015294976","msg":"测试消息通知","state":-1,"uid":"6642547015294976"}]
<?php
$encryptedContent = 'zFCFrqFFfF5QO013SMvo2G5yjaFzW/9N9dD5y39DICEvLjCyeCypvSucY7wtnKjMp6fCmpnITtRwDAkVNZ4CzYl9yNFzTMLIzxFAgit+xo2oHreuCPDcYsl7x32Nnr/v';
$key = "ce7185a0b19df316dda81ad6";
function pkcs5UnPadding($text) {
    $pad = ord($text[strlen($text) - 1]);
    return substr($text, 0, -1 * $pad);
}

function base64Decode3DESECBDecrypt($encryptedContent, $key) {
    // Step 1: Base64 Decode
    $decodedContent = base64_decode($encryptedContent);
    // Step 2: 3DES Decrypt
    $decryptedContent = openssl_decrypt($decodedContent, 'des-ede3', $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);
    // Step 3: Unpad
    $decryptedContent = pkcs5UnPadding($decryptedContent);
    return $decryptedContent;
}

$originalContent = base64Decode3DESECBDecrypt($encryptedContent, $key);
echo "Decrypted content: " . $originalContent; 

WebHook响应说明(供应商返回) #

供应商响应参数 #

参数名 类型 是否必填 说明
success bool 是否处理成功

供应商响应示例 #

{
  "success": true
}