文件
mashangyoujiu/Application/Retail/Controller/DadaCeshiController.class.php

253 行
10 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?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;
}
}