253 行
10 KiB
PHP
可执行文件
253 行
10 KiB
PHP
可执行文件
<?php
|
||
namespace Retail\Controller;
|
||
use Think\Controller;
|
||
//[1.0.45]
|
||
class DadaCeshiController extends Controller{
|
||
private static $dmerchhant; //注册商户
|
||
private static $daddstore; //创建门店
|
||
private static $update; //门店更新
|
||
private static $recharge; //充值
|
||
private static $query; //充值
|
||
private static $dcitys; //获取城市信息
|
||
private static $reasons; //取消订单原因列表
|
||
private static $addOrder; //下单
|
||
private static $reAddOrder; //重新下单
|
||
private static $formalCancel; //商家取消订单
|
||
private static $rider; //骑手信息
|
||
private static $accept; //模拟接单
|
||
private static $fetch; //模拟接单
|
||
private static $finish; //模拟完成
|
||
private static $cancel; //模拟取消
|
||
private static $expire; //模拟过期
|
||
private static $back; //模拟拒绝返还商品
|
||
public function __construct()
|
||
{
|
||
/*self::$dmerchhant = 'http://newopen.qa.imdada.cn/merchantApi/merchant/add';
|
||
self::$daddstore = 'http://newopen.qa.imdada.cn/api/shop/add';
|
||
self::$recharge = 'http://newopen.qa.imdada.cn/api/recharge';
|
||
self::$query = 'http://newopen.qa.imdada.cn/api/balance/query';
|
||
self::$dcitys = 'http://newopen.qa.imdada.cn/api/cityCode/list';
|
||
self::$reasons = 'http://newopen.qa.imdada.cn/api/order/cancel/reasons';
|
||
self::$addOrder = 'http://newopen.qa.imdada.cn/api/order/addOrder';
|
||
self::$formalCancel = 'http://newopen.qa.imdada.cn/api/order/formalCancel';
|
||
self::$rider = 'http://newopen.qa.imdada.cn/api/order/status/query';
|
||
self::$accept = 'http://newopen.qa.imdada.cn/api/order/accept';
|
||
self::$fetch = 'http://newopen.qa.imdada.cn/api/order/fetch';
|
||
self::$finish = 'http://newopen.qa.imdada.cn/api/order/finish';
|
||
self::$cancel = 'http://newopen.qa.imdada.cn/api/order/cancel';
|
||
self::$expire = 'http://newopen.qa.imdada.cn/api/order/expire';
|
||
self::$back = 'http://newopen.qa.imdada.cn/api/order/delivery/abnormal/back';
|
||
self::$reAddOrder = 'http://newopen.qa.imdada.cn/api/order/reAddOrder';*/
|
||
self::$dmerchhant = 'http://newopen.imdada.cn/merchantApi/merchant/add';
|
||
self::$daddstore = 'http://newopen.imdada.cn/api/shop/add';
|
||
self::$recharge = 'http://newopen.imdada.cn/api/recharge';
|
||
self::$query = 'http://newopen.imdada.cn/api/balance/query';
|
||
self::$dcitys = 'http://newopen.imdada.cn/api/cityCode/list';
|
||
self::$reasons = 'http://newopen.imdada.cn/api/order/cancel/reasons';
|
||
self::$addOrder = 'http://newopen.imdada.cn/api/order/addOrder';
|
||
self::$formalCancel = 'http://newopen.imdada.cn/api/order/formalCancel';
|
||
self::$rider = 'http://newopen.imdada.cn/api/order/status/query';
|
||
self::$accept = 'http://newopen.imdada.cn/api/order/accept';
|
||
self::$fetch = 'http://newopen.imdada.cn/api/order/fetch';
|
||
self::$finish = 'http://newopen.imdada.cn/api/order/finish';
|
||
self::$cancel = 'http://newopen.imdada.cn/api/order/cancel';
|
||
self::$expire = 'http://newopen.imdada.cn/api/order/expire';
|
||
self::$back = 'http://newopen.imdada.cn/api/order/delivery/abnormal/back';
|
||
self::$reAddOrder = 'http://newopen.imdada.cn/api/order/reAddOrder';
|
||
self::$update = 'http://newopen.imdada.cn/api/shop/update';
|
||
}
|
||
//注册商户
|
||
public function registermerchant($app_key,$app_secret,$data)
|
||
{
|
||
$path = self::$dmerchhant;
|
||
$res = $this->Currencymem($app_key,$app_secret,$path,$data);
|
||
return $res;
|
||
}
|
||
//创建门店
|
||
public function establishstore($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$daddstore;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//门店更新
|
||
public function updatestore($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$update;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//充值
|
||
public function recharge($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$recharge;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//余额查询
|
||
public function query($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$query;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//下单
|
||
public function addorder($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$addOrder;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//再次下单
|
||
public function reAddOrder($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$reAddOrder;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//商家取消下单
|
||
public function formalCancel($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$formalCancel;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//骑手信息
|
||
public function rider($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$rider;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//获取城市信息
|
||
public function dcitys($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$dcitys;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//取消订单列表原因
|
||
public function reasons($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$reasons;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//模拟达达接单
|
||
public function accept($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$accept;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//模拟取货
|
||
public function fetch($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$fetch;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//模拟完成
|
||
public function finish($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$finish;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//模拟取消
|
||
public function cancel($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$cancel;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//模拟过期
|
||
public function expire($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$expire;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//模拟返回
|
||
public function back($app_key,$app_secret,$source_id,$data)
|
||
{
|
||
$path = self::$back;
|
||
$res = $this->Currency($app_key,$app_secret,$source_id,$path,$data);
|
||
return $res;
|
||
}
|
||
//注册商户的请求接口
|
||
public function Currencymem($app_key,$app_secret,$path,$body)
|
||
{
|
||
$headers =array("Content-type: application/json;charset='utf-8'","Accept: application/json");
|
||
$data = array();
|
||
$data['format'] = 'json';
|
||
$data['timestamp'] = time();
|
||
$data['app_key'] = $app_key;
|
||
$data['v'] = '1.0';
|
||
$data['source_id'] = '';
|
||
$data['body'] = json_encode($body);
|
||
$data['signature'] = $this->Sign($app_key,$app_secret,$data);
|
||
$newdata = json_encode($data);
|
||
$res = $this->curl_post($path,$headers,$newdata);
|
||
return $res;
|
||
}
|
||
/*
|
||
*请求接口
|
||
* app_key String 是 应用Key,对应开发者账号中的app_key
|
||
signature String 是 签名Hash值,参见:接口签名规则
|
||
timestamp String 是 时间戳,单位秒,即unix-timestamp
|
||
format String 是 请求格式,暂时只支持json json
|
||
v String 是 API版本 1.0
|
||
source_id String 是 商户编号(创建商户账号分配的编号) 测试环境默认为:73753
|
||
body String 是 业务参数,JSON字符串,详见具体的接口文档
|
||
*/
|
||
public function Currency($app_key,$app_secret,$source_id,$path,$body)
|
||
{
|
||
$headers =array("Content-type: application/json;charset='utf-8'","Accept: application/json");
|
||
$data = array();
|
||
// $source_id = '73753';
|
||
$data['format'] = 'json';
|
||
$data['timestamp'] = time();
|
||
$data['app_key'] = $app_key;
|
||
$data['v'] = '1.0';
|
||
$data['source_id'] = $source_id;
|
||
$data['body'] = json_encode($body);
|
||
$data['signature'] = $this->Sign($app_key,$app_secret,$data);
|
||
$newdata = json_encode($data);
|
||
$res = $this->curl_post($path,$headers,$newdata);
|
||
return $res;
|
||
}
|
||
|
||
//签名
|
||
private function Sign($app_key,$app_secret,$data)
|
||
{
|
||
ksort($data);
|
||
$str = '';
|
||
foreach ($data as $key=>$val){
|
||
$str .= $key.$val;
|
||
}
|
||
$str = $app_secret.$str.$app_secret;
|
||
$newstr = md5($str);
|
||
$newstr = strtoupper($newstr);
|
||
return $newstr;
|
||
}
|
||
function curl_post($url,$headers,$content)
|
||
{
|
||
$ch = curl_init();
|
||
if(substr($url,0,5)=='https'){
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
|
||
}
|
||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||
curl_setopt($ch, CURLOPT_URL, $url);
|
||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||
curl_setopt($ch, CURLOPT_POST, true);
|
||
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
|
||
$response = curl_exec($ch);
|
||
if($error=curl_error($ch)){
|
||
die($error);
|
||
}
|
||
curl_close($ch);
|
||
return $response;
|
||
}
|
||
} |