一键短信
- angularjs实现发短信功能
后端会给接口和字段,短信内容你也不用管
1.1 在按钮的地方,添加一个点击事件,事件里面传入后端给的字段
<button class="btn btn-primary " ng-click="detail.sendMessage(detail.id,detail.ag_num )">一键短信</button>
1.2在js里面写发送短信的方法:
这里的字段id,ag_num 有可能不在同一个接口几面,取的时候要注意
this.sendMessage = (id, ag_num) => {
this.$http.post('/aws/send_message/', { id: this.id, ag_num: this.advisorCallInfo.ag_num }).then(res => {
this.toastr.success('一键短信成功');
}, (err) => {
this.toastr.error('一键短信失败', '?');
});
};
写发短信,其实就是调接口,传参数。其他的后端来
服务报200,url正确,payload里面有后端给的数据,就成功了
1.3最后说一点:本地代码和给你接口的后端要一致,测试代码的接口和给你接口的后端也要一致,不然就算代码写对,后端也不会接到你的请求
终于----------没有那么简单
产品考虑角度:
顾问万一错误按下发短信,导致会骚然用户
如果已经发送过短信,那么就不能再给用户发短信
实现
2.1: 后端给了两个接口,这次的逻辑,是要先判断是否已经发送过短信
接口一:接口一会返回一个code值,如果code值为0,那么可以发短信
发完短信,走第二个接口,第二个接口就是刚开始的需求
具体实现起来要注意:
3.1:post和get传参不一样
3.2:指行的时机(这个要和后端沟通好)
3.3:有时候会报请求4,5错误,在自己传参正确的情况下,问一下后端
附上代码,供参考
this.sendMessageUibModal = sendMsg => {
this.$uibModal.open({
templateUrl: addOneMessageModalTml,
bindToController: true,
windowClass: 'add_one_success',
controller: ($uibModalInstance, $scope, pa) => {
'ngInject';
$scope.pa = pa;
$scope.sendEnd = () => {
this.$http.post('/aws/send_message/', { id: this.id, ag_num: this.advisorCallInfo.ag_num }).then(() => {
this.toastr.success('一键短信成功');
$uibModalInstance.close();
}, (err) => {
this.toastr.error('一键短信失败', '?');
});
};
},
resolve: {
pa: () => sendMsg
}
});
}
this.sendMessage = () => {
// 先判断
this.$http.get(`/aws/send_message/?id=${ this.id }&ag_num=${ this.advisorCallInfo.ag_num }&template=SMS_162446224`).then(data => {
this.sendMsg = data.data.msg;
if (data.data.code === 1) {
this.toastr.info('已经发送过短信给该用户。针对同一客户,只能发送一次短信哦~~');
} else if (data.data.code === 0) {
this.sendMessageUibModal(this.sendMsg);
}
});
};
一下是短信模版
<div class="modal-header">
<h4 class="modal-title" style="text-align: center">
短信发送内容
</h4>
</div>
<div class="modal-body">
<p>
<span>{{ pa }}</span>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary btn-o" ng-click="sendEnd()" style="background: #3487e2">发送</button>
<button type="button" class="btn btn-default btn-default" ng-click="$dismiss();">取消</button>
</div>