聯(lián)系官方銷售客服
1835022288
028-61286886
短信接口自己胡改八改的倒是生效了(改成了面向過(guò)程的,沒(méi)有類,只有函數(shù))
普通的注冊(cè)啥的都沒(méi)問(wèn)題,但是發(fā)現(xiàn)在訂單通知時(shí)出現(xiàn)redeclare(或類似重復(fù)聲明)錯(cuò)誤。
查看訂單通知\diy\module\order\models\Order_model.php的notice函數(shù)才知道,是通知買家、賣家雙方,代碼如下:
// 通知買家
if ($buy) {
$this->member_model->sendsms($order['shipping_phone'], $content);
}
// 通知商家
if ($sell) {
$m = dr_member_info($sell);
if ($m['phone']) {
$this->member_model->sendsms($m['phone'], $content);
}
}
因?yàn)槊嫦蜻^(guò)程,這樣一來(lái),我在的sendsms() 這個(gè)函數(shù)里的子函數(shù)就在一個(gè)被重復(fù)聲明兩次,請(qǐng)問(wèn)高手,這個(gè)怎么破?
附\diy\module\member\models\Member_model.php的sendsms函數(shù)代碼如下:
/**
* 短信發(fā)送
*
* @param string $mobile
* @param string $content
* @return bool
*/
public function sendsms($mobile, $content) {
if (!$mobile || !$content) {
return FALSE;
}
function req($accessKeyId, $accessKeySecret, $domain, $params)
{
$apiParams = array_merge(array (
"SignatureMethod" => "HMAC-SHA1",
"SignatureNonce" => uniqid(mt_rand(0,0xffff), true),
"SignatureVersion" => "1.0",
"AccessKeyId" => $accessKeyId,
"Timestamp" => gmdate("Y-m-d\TH:i:s\Z"),
"Format" => "JSON",
), $params);
ksort($apiParams);
$sortedQueryStringTmp = "";
foreach ($apiParams as $key => $value) {
$sortedQueryStringTmp .= "&" . encode($key) . "=" . encode($value);
}
$stringToSign = "GET&%2F&" . encode(substr($sortedQueryStringTmp, 1));
$sign = base64_encode(hash_hmac("sha1", $stringToSign, $accessKeySecret . "&",true));
$signature = encode($sign);
$url = "http://{$domain}/?Signature={$signature}{$sortedQueryStringTmp}";
try {
$content = fetchContent($url);
return json_decode($content);
} catch( \Exception $e) {
return false;
}
}
function encode($str)
{
$res = urlencode($str);
$res = preg_replace("/\+/", "%20", $res);
$res = preg_replace("/\*/", "%2A", $res);
$res = preg_replace("/%7E/", "~", $res);
return $res;
}
function fetchContent($url) {
if(function_exists("curl_init")) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"x-sdk-client" => "php/2.0.0"
));
$rtn = curl_exec($ch);
if($rtn === false) {
trigger_error("[CURL_" . curl_errno($ch) . "]: " . curl_error($ch), E_USER_ERROR);
}
curl_close($ch);
return $rtn;
}
$context = stream_context_create(array(
"http" => array(
"method" => "GET",
"header" => array("x-sdk-client: php/2.0.0"),
)
));
return file_get_contents($url, false, $context);
}
$params = array ();
$accessKeyId = "阿里云短信id";
$accessKeySecret = "阿里云短信secret";
$params["PhoneNumbers"] = $mobile;//$phone;
$params["SignName"] = "阿里云短信模板簽名";
$params["TemplateCode"] = "SMS_109465355";
$params['TemplateParam'] = Array (
"code" => $content,
"product" => "阿里通信"
);
// fixme 可選: 設(shè)置發(fā)送短信流水號(hào)
$params['OutId'] = "12345";
$params['SmsUpExtendCode'] = "1234567";
// *** 需用戶填寫部分結(jié)束, 以下代碼若無(wú)必要無(wú)需更改 ***
if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
$params["TemplateParam"] = json_encode($params["TemplateParam"]);
}
// 初始化SignatureHelper實(shí)例用于設(shè)置參數(shù),簽名以及發(fā)送請(qǐng)求
// 此處可能會(huì)拋出異常,注意catch
$content1 = req(
$accessKeyId,
$accessKeySecret,
"dysmsapi.aliyuncs.com",
array_merge($params, array(
"RegionId" => "cn-hangzhou",
"Action" => "SendSms",
"Version" => "2017-05-25",
))
);
$result=dr_object2array($content1);
//$myfile = fopen("newfile9.txt", "w") or die("Unable to open file!");
//fwrite($myfile, dr_array2string(result['Code']));
//fclose($myfile);
/*
$file = WEBPATH.'config/sms.php';
if (!is_file($file)) {
return FALSE;
}
$config = require_once $file;
if ($config['third']) {
$this->load->helper('sms');
if (function_exists('my_sms_send')) {
//$result = my_sms_send($mobile, $content, $config);
} else {
return FALSE;
}
} /*else {
$result = dr_catcher_data('http://sms.xunruicms.com/index.php?uid='.$config['uid'].'&key='.$config['key'].'&mobile='.$mobile.'&content='.$content.'【'.$config['note'].'】&domain='.trim(str_replace('http://', '', SITE_URL), '/').'&sitename='.SITE_NAME);
if (!$result) {
return FALSE;
}
$result = json_decode($result, true);
}*/
if ($result['Code']=='OK') {
return array('status' => 1, 'msg' => '發(fā)送成功');
} else {
return array('status' => 0, 'msg' => '短信通道:'.$result['Message']);
}
}
誰(shuí)來(lái)幫姐啊
官方商店有阿里云短信插件的
還原 重新找人幫忙做。。。最怕的就是二吊子亂改。 你這樣誰(shuí)能幫你找到問(wèn)題。解決完這個(gè)也會(huì)有其他的問(wèn)題
太亂了,閱讀性太差太差
【葉落歸根】4樓
大佬。如何提升可讀性?
使用代碼格式發(fā)出來(lái)。
就是說(shuō)在線格式化的工具格式化一下嗎?
【九天網(wǎng)絡(luò)(JiuDay)】6樓