cping/pfdjk

Unified affiliate SDK for Taobao, JD, PDD, and VIP

Maintainers

Details

github.com/cping6/pfdjk

Source

Issues

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/cping/pfdjk

dev-main 2026-01-12 03:04 UTC

This package is auto-updated.

Last update: 2026-02-12 03:31:07 UTC


README

安装

composer require cping/pfdjk

快速开始

<?php

require __DIR__ . '/vendor/autoload.php';

use Cping\Pfdjk\Client;

$client = new Client([
    'taobao' => [
        'app_key' => 'your-app-key',
        'app_secret' => 'your-app-secret',
        'adzone_id' => 'your-adzone-id',
        'site_id' => 'your-site-id',
    ],
    'jd' => [
        'app_key' => 'your-app-key',
        'app_secret' => 'your-app-secret',
        'site_id' => 'your-site-id',
        'position_id' => 'your-position-id',
    ],
    'pdd' => [
        'client_id' => 'your-client-id',
        'client_secret' => 'your-client-secret',
        'pid' => 'your-pid',
    ],
    'vip' => [
        'app_key' => 'your-app-key',
        'app_secret' => 'your-app-secret',
        'access_token' => 'your-access-token',
    ],
]);

$result = $client->pdd()->searchGoods([
    'keyword' => '手机',
    'page' => 1,
    'page_size' => 20,
    'with_coupon' => true,
]);

var_dump($result);

统一能力范围

  • 商品搜索:searchGoods
  • 推广链接:generatePromotionLink
  • 订单查询:queryOrders
  • PID/推广位:generatePid
  • 券信息:queryCoupons
  • 商品详情:getGoodsDetail
  • 推荐榜单:getRecommendList
  • 渠道/会员:getChannelInfo
  • 分类目录:getCategories
  • 活动/频道:getActivities
  • 转链解析:convertLink
  • 短链生成:generateShortLink
  • 口令生成:generateCommand (Taobao only)
  • 二维码:generateQrCode (PDD only)
  • 退款订单:queryRefundOrders (VIP only)
  • 结算查询:queryOrderSettlements (alias of queryOrders)

每个平台的方法名一致,返回统一结构:

[
  'success' => true/false,
  'data' => mixed,
  'raw' => array,
  'error' => ['code' => int, 'message' => string] | null,
]

Normalized data fields:

  • list-based: { list, total, page, page_size }
  • detail: { item }
  • link: { url, short_url, mobile_url, weapp_url, tpwd }

Required Params (Unified)

Note: These are SDK validation rules based on common usage. For full control, use Raw Mode.

Taobao

  • searchGoods: keyword OR category_id
  • generatePromotionLink: goods_id AND adzone_id (adzone_id can come from config)
  • queryOrders: start_time AND end_time
  • generatePid: site_id (can come from config)
  • queryCoupons: goods_id OR activity_id
  • getGoodsDetail: goods_id or goods_ids
  • getRecommendList: goods_id
  • getChannelInfo: channel_id OR special_id

JD

  • searchGoods: keyword OR goods_id(s) OR cid1/cid2/cid3
  • generatePromotionLink: material_id AND site_id (site_id can come from config)
  • queryOrders: start_time AND end_time
  • generatePid: site_id (can come from config)
  • queryCoupons: keyword OR category_id OR goods_id
  • getGoodsDetail: goods_id or goods_ids
  • getChannelInfo: union_id OR key

PDD

  • searchGoods: keyword OR category_id OR opt_id OR goods_id_list
  • generatePromotionLink: pid AND goods_id_list (pid can come from config)
  • queryOrders: start_time AND end_time
  • queryCoupons: category_id OR range_list
  • getGoodsDetail: goods_id_list
  • getRecommendList: channel_type OR goods_id_list
  • getChannelInfo: pid (can come from config)

VIP

  • searchGoods: keyword
  • generatePromotionLink: goods_id_list
  • queryOrders: start_time AND end_time
  • generatePid: name_list or pid_name_list
  • queryCoupons: keyword
  • getGoodsDetail: goods_id_list
  • getRecommendList: channel_type
  • getChannelInfo: pid_list

平台调用示例

$taobao = $client->taobao();
$jd = $client->jd();
$pdd = $client->pdd();
$vip = $client->vip();

$taobao->searchGoods(['keyword' => '连衣裙']);
$jd->generatePromotionLink(['material_id' => 'https://item.jd.com/123.html']);
$pdd->queryOrders(['start_time' => time() - 3600, 'end_time' => time()]);
$vip->getRecommendList(['channel_type' => 1]);

原始接口模式

需要调用原始方法时,可以传入 raw_method / raw_params(唯品会需要 raw_service):

$client->pdd()->searchGoods([
    'raw_method' => 'pdd.ddk.goods.search',
    'raw_params' => [
        'keyword' => '零食',
        'page' => 1,
        'page_size' => 10,
    ],
]);

$client->vip()->getGoodsDetail([
    'raw_service' => 'com.vip.adp.api.open.service.UnionGoodsService',
    'raw_method' => 'getByGoodsIds',
    'raw_params' => [
        'goodsIdList' => [123456],
        'requestId' => 'req-1',
    ],
]);

说明

  • 不依赖任何框架,仅依赖 PHP 扩展 ext-jsonext-curl
  • 各平台参数字段略有差异,SDK 做了统一字段映射;需要精确字段时使用原始接口模式。
  • 唯品会使用 OSP 网关签名规则进行签名,请确保 app_key/app_secret/access_token 配置正确。