0 引言
采用拼多多的转码api(pdd.ddk.goods.zs.unit.url.gen
),其参数用到
client_id
client_secret
-
accessToken
需要针对不同的参数进行分析
1 初始化
目前只有两个client_id
,client_secret
,需要获取accessToken
,有两种方式,均是在AccessToken.php
中进行:
- 通过refreshToken进行刷新获得。
- 在
Config.php
中填入refreshToken
并运行即可得到accessToken
和refreshToken
- 由
code
获取,这也是系统初始化的方法。
- 访问链接,即可获得
code
。
https://jinbao.pinduoduo.com/open.html?client_id=[client_id]&response_type=code&redirect_uri=[回调地址]
- 在
Config.php
中填入code
并运行即可得到accessToken
和refreshToken
需要注意的是:
accessToken
一小时更新一次,refreshToken
一天更新一次- 本人采用了更新后写入新文档,更新前用新文档替换旧文档的形式完成更新,这种方式会有一个刷新的时间差。
//开头
$str_t=file_get_contents("Config_linshi.php");
file_put_contents("Config.php",$str_t);
//更新等内容
//结尾
$str=file_get_contents("Config.php");//打开文件
$str=str_replace($old_access,$access_token,$str);//替换
$str=str_replace($old_refresh,$refresh_token,$str);//替换
file_put_contents("Config_linshi.php",$str);
2 PID备案
只有经过备案的PID才可以直接进行转码,备案流程如下:
- 利用
PddDdkOauthMemberAuthorityQuery.php
识别是否完成了备案,若未备案则有bind=0
。
$request->setPid('[PID]');
$request->setCustomParameters('[名字]');
2.利用PddDdkGoodsPromotionUrlGenerate.php
获取备案链接,拿到链接微信扫码即可完成备案。
$request->setCustomParameters('[名字]');
//[名字]要和后面使用时保持一致,现在可以随便设
$request->setGoodsSignList(array('c9_2jIGD8q9HeEqRwvfY5A2CBcK7_JOFdnZa6o'));
//这个是官方某处的GoodsSign,直接拿过来用了
$request->setPId('[PID]');
//其中PID可以在官网的转码功能中用F12控制台获取
3 转链
注意[名字]
要和备案时名字一致即可,利用PddDdkGoodsZsUnitUrlGen.php
<?php
/**
* 示例接口名称:pdd.ddk.goods.zs.unit.url.gen
*/
require_once dirname(__FILE__).'/Config.php';
require_once dirname(__FILE__)."/../vendor/autoload.php";
use Com\Pdd\Pop\Sdk\PopHttpClient;
use Com\Pdd\Pop\Sdk\Api\Request\PddDdkGoodsZsUnitUrlGenRequest;
$client = new PopHttpClient(Config::$clientId, Config::$clientSecret);
$request = new PddDdkGoodsZsUnitUrlGenRequest();
$request->setCustomParameters('[名字]');
$request->setPId('[PID]');
$request->setSourceUrl('[要转码的链接]');
try{
$response = $client->syncInvoke($request);
} catch(Com\Pdd\Pop\Sdk\PopHttpException $e){
echo $e->getMessage();
exit;
}
$content = $response->getContent();
if(isset($content['error_response'])){
echo "异常返回";
}
echo json_encode($content,JSON_UNESCAPED_UNICODE);
4 总结
至此完成了,记得AccessToken.php
自动刷新。
常用链接