https://union.jd.com/helpcenter/13246-13247-46301
官方默认只有java的sdk
<?php /** * Created by PhpStorm. * User: Leestar * Mail: lixin9610@126.com */ namespace app\common; use think\facade\Log; /** * 京东联盟 * Class JdUnion * @package app\common */ class JdUnion { const APP_KEY = \'主体appkey\'; const SECRET_KEY = \'主体secret\'; const URL = \'https://router.jd.com/api\'; /** * 根据关键字返回商品列表 * https://union.jd.com/openplatform/debug/10420 * @param array $params 见文档的业务入参 * @return bool|array */ public static function goodsQuery($params) { $res = self::query(\'jd.union.open.goods.query\', [ \'goodsReqDTO\' => $params, ]); if (isset($res[\'jd_union_open_goods_query_response\']) && $res[\'jd_union_open_goods_query_response\'][\'code\'] == \'0\') { $temp = json_decode($res[\'jd_union_open_goods_query_response\'][\'result\'], true); if ($temp[\'code\'] == 200) { return $temp; } } Log::write($res); return false; } /** * 社交媒体获取推广链接接口【申请】 * https://union.jd.com/openplatform/api/10424 * @param int $skuid 商品id * @return bool|array */ public static function promotionUrl($skuid) { $res = self::query(\'jd.union.open.promotion.bysubunionid.get\', [ \'promotionCodeReq\' => [ \'materialId\' => \'https://wqitem.jd.com/item/view?sku=\' . $skuid, \'positionId\' => 推广位id ], ]); if (isset($res[\'jd_union_open_promotion_bysubunionid_get_response\']) && $res[\'jd_union_open_promotion_bysubunionid_get_response\'][\'code\'] == \'0\') { return json_decode($res[\'jd_union_open_promotion_bysubunionid_get_response\'][\'result\'], true); } else { Log::write($res); return false; } } /** * 京粉精选商品查询接口 * https://union.jd.com/openplatform/api/10417 * @param array $params 见文档的业务入参 * @return bool|array */ public static function jingFenQuery($params) { $res = self::query(\'jd.union.open.goods.jingfen.query\', [ \'goodsReq\' => $params, ]); if (isset($res[\'jd_union_open_goods_jingfen_query_response\']) && $res[\'jd_union_open_goods_jingfen_query_response\'][\'code\'] == \'0\') { $temp = json_decode($res[\'jd_union_open_goods_jingfen_query_response\'][\'result\'], true); if ($temp[\'code\'] == 200) { return $temp; } } Log::write($res); return false; } /** * 基础查询方法 * @param string $method 方法名 * @param array $business_data 业务入参 * @return array */ private static function query($method, $business_data) { //业务参数 $param_json = json_encode($business_data); //系统参数 $system_data = [ \'v\' => \'1.0\', \'method\' => $method, \'access_token\' => \'\', \'app_key\' => self::APP_KEY, \'sign_method\' => \'md5\', \'format\' => \'json\', \'timestamp\' => date("Y-m-d H:i:s"), \'sign\' => \'\', \'param_json\' => $param_json ]; //签名 $orderData = self::paramOrder($system_data); $sign = self::paramSign($orderData); $system_data[\'sign\'] = $sign; return json_decode(self::post($system_data), true); } //排序ksort private static function paramOrder($params) { ksort($params); $stringToBeSigned = ""; $i = 0; foreach ($params as $k => $v) { if (false === self::checkEmpty($v)) { $v = self::characet($v, \'utf-8\'); if ($i == 0) { $stringToBeSigned .= "$k" . "$v"; } else { $stringToBeSigned .= "$k" . "$v"; } $i++; } } unset ($k, $v); return $stringToBeSigned; } //为空检查 private static function checkEmpty($value) { if (!isset($value)) return true; if ($value === null) return true; if (trim($value) === "") return true; return false; } //编码设置 private static function characet($data, $targetCharset) { if (!empty($data)) { $fileType = \'utf-8\'; if (strcasecmp($fileType, $targetCharset) != 0) { $data = mb_convert_encoding($data, $targetCharset, $fileType); } } return $data; } //签名 private static function paramSign($params) { $str = self::SECRET_KEY . $params . self::SECRET_KEY; $sign = md5($str); return strtoupper($sign); } //基于curl提交 private static function post($param) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, self::URL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); return $data; } }
参考:
https://blog.csdn.net/u013252962/article/details/100972707