微信支付成功后发送短信通知

微信支付成功后发送短信通知

这里以TP3.2框架为例

在支付回调的方法里写发送短信通知的代码,如下图:

public function notify()

$model = D('Match');
// 获取一条主管理员电话号
$phoneinfo = $model->getSpeicalPhoneInfo();

$specialphone = $phoneinfo['phone'];
$order_id = I('order_id');

//在此处进行支付成功后的数据库操作

//-------------------数据库操作------------------------

// 判断是否发送短信通知
// 当状态为1,即短信通知开启时,发送短信通知
if ($phoneinfo['status'] == 1) {
  //调用同类下的sendSmsMessage方法
  $res = $this->sendSmsMessage($order_id, $specialphone);
  
  // 这里请求结果为:
  // {"Message":"OK","RequestId":"DCAE*************3r23233","BizId":"2132**********00","Code":"OK"}
  
   if ($res->Code == 'OK') {
	 	echo json_encode(array('success'=>'发送短信成功'));
	 	exit;
    } else {
		echo json_encode(array('error'=>'发送短信失败'));
    	exit;
    }
  
}

}

// 发送短信通知
public function sendSmsMessage($oid, $specialphone){

if (empty($specialphone)) {
   return false;
}
  $smsmodel = D('SmsNotice');
  // 给管理员发送短信通知
  $product = "晓美商品";
  // 调用模型SmsNoticeModel.class.php
  $res = $smsmodel->sendToAdministrator($oid, $specialphone, $product); 
  return $res;

SmsNoticeModel.class.php模型页面

classSmsNoticeModel{

public function sendToAdministrator($order_id, $phone, $product){
 
    // 引入阿里的配置文件(位置位于 ' 项目名称\ThinkPHP\Library\Vendor\api_sdk')
    Vendor('api_sdk.vendor.autoload');
    // 加载区域结点配置
    \Aliyun\Core\Config::load();
    // 获取阿里云短信的配置信息,如KEYID、KEYSERVER、SIGN(签名名称)、模板CODE
    $Api_arr  = C('SMS_API');
    $profile = \Aliyun\Core\Profile\DefaultProfile::getProfile('cn-hangzhou', $Api_arr['KEYID'], $Api_arr['KEYSERVER']);
    // 增加服务结点
    \Aliyun\Core\Profile\DefaultProfile::addEndpoint('cn-hangzhou', 'cn-hangzhou', 'Dysmsapi', 'dysmsapi.aliyuncs.com');
    // 初始化AcsClient用于发起请求
    $acsClient = new \Aliyun\Core\DefaultAcsClient($profile);
    // 初始化SendSmsRequest实例用于设置发送短信的参数
    $request = new \Aliyun\Api\Sms\Request\V20170525\SendSmsRequest();
    // 必填,设置雉短信接收号码
    $request->setPhoneNumbers($phone);
    // 必填,设置签名名称
    $request->setSignName($Api_arr['SIGN']);
    // 必填,设置模板CODE
    $request->setTemplateCode($Api_arr['CODE']);
    $params = array(
        'product' => $product
    );
    // 可选,设置模板参数
    $request->setTemplateParam(json_encode($params));
    // 可选,设置流水号
    // 发起访问请求
    $acsResponse = $acsClient->getAcsResponse($request);
    // 打印请求结果
    $arr = [];
    if ($acsResponse->Code == 'OK') {
    	$arr['content'] = "您有一笔" . $product . "交易,请及时查看!";
    } else {
		$arr['content'] = "发送短信失败!";
		// 发送失败原因可能为欠费或电话号不存在,具体发送失败的原因可根据请求结果中的message得知
    }
	$arr['order_id'] = $order_id;
	$arr['phone'] = $phone;
	$arr['result'] = json_encode($acsResponse);
	$arr['sendtime'] = date('Y-m-d H:i:s');
	
	$addinfo = M('CompanySms')->add($arr);
    return $acsResponse;
}

}

猜你喜欢

转载自blog.csdn.net/qq_36377320/article/details/88736384