shopnc 进行付款有两个入口,一个是直接购买入口,index.php?act=buynow&op=step2 调用模板为templates/default/home/groupbuy_pay.php |*======*|一个是通过已经生成的订单来支付,index.php?act=cart&op=order_pay&order_id=119 则调用templates/default/home/cart_step2.php,然后将数据提交到index.php?act=payment&order_id=订单号。下面梳理一下思路~~
首先买家选择支付方式,购买产品,程序将参数通过from表单传递到payment类下面,进行数据校验,然后通过支付接口判断用户是否支付成功,如果成功则返回相对应的文字信息。
我们的需要时在买家支付成功后发送短信到买家和卖家的手机中。so……在判断用户支付成功后,我们获取买家和卖家的手机号码,写一个发送短信的接口就能实现需求了。
其中一个通过预付款来支付的函数如下:
public function predeposit_pay($order_info){
/**
* 读取语言包
*/
Language::read('home_payment_index');
//验证订单信息
$order = Model('order');
//验证订单是否已经支付
if ($order_info['order_state'] != 10){//未支付时
showMessage(Language::get('payment_index_spec_order_not_exists1').$order_info['order_sn'].Language::get('payment_index_pay_finish'),SiteUrl.'/index.php?act=member&op=order','html','error');
}
//冻结买家账户预存款
$member_model = Model('member');
$buyer_info = $member_model->infoMember(array('member_id'=>$_SESSION['member_id']));
if (!is_array($buyer_info) || count($buyer_info)<=0){
showMessage(Language::get('payment_index_spec_order_not_exists1').$order_info['order_sn'].Language::get('payment_index_buyerinfo_error'),SiteUrl.'/index.php?act=member&op=order','html','error');
}
//预存款是否足够
if (floatval($buyer_info['available_predeposit']) < $order_info['order_amount']){
showMessage(Language::get('payment_predeposit_short_error'),SiteUrl.'/index.php?act=predeposit','html','error');
}
$predeposit_model = Model('predeposit');
……
……
if($result){
showMessage(Language::get('payment_index_deal_order_success'),SiteUrl."/index.php?act=member&op=order");
}else{
showMessage(Language::get('payment_index_deal_order_fail'),SiteUrl."/index.php?act=member&op=order",'html','error');
}
}
没错!就是这个,我们可以直接在这儿加入我们的短信接口。
下面需要解决的就是获取买家卖家的手机号码:
/**
* by cheng
*获取订单号码和买家、商家手机号码
*/
public function get_order_tel(){
$order = Model('order');
/**
* 根据订单标号读取支付方式的code(取得该订单的全部数据)
*/
$order_info = $order->getOrderById(intval($_GET['order_id']));
$order_id=$order_info[order_sn];
$mj_tel=$order_info[mob_phone];
$model_store = Model('store');
$store_info = $model_store->shopStore(array('store_id'=>$order_info['store_id']));
//print_r($store_info);
return $order_id.",".$mj_tel.",".$store_info[13];
}
/*
* by cheng
*发送短信
*/
public function send_cheng(){
$str=$this->get_order_tel();
$var=explode(",",$str);
//print_r($var);
$mj=$var[1];
$sj=$var[2];
$order_id=$var[0];
$phone_1=$mj;//买家号码
$phone_2=$sj;//商家号码
$message_mj="买家您好,恭喜您付款成功,您的商品订单号为{$order_id}";
$message_sj="商家您好,恭喜您,又有人来购买您的商品了,订单号为{$order_id},请速度处理";
$uid = 'zhanghao';
//短信接口密码 $passwd
$passwd = 'mima';
$gateway_1 = "http://******.com/ws/batchSend2.aspx?CorpID={$uid}&Pwd={$passwd}&Mobile={$phone_1}&Content={$message_mj}&Cell=&SendTime=";
$gateway_2 = "http://******.com/ws/batchSend2.aspx?CorpID={$uid}&Pwd={$passwd}&Mobile={$phone_2}&Content={$message_sj}&Cell=&SendTime=";
$gateway_1=iconv("UTF-8","GB2312//IGNORE",$gateway_1);
$gateway_2=iconv("UTF-8","GB2312//IGNORE",$gateway_2);
$rccc_1 = @file_get_contents($gateway_1);
$rccc_2 = @file_get_contents($gateway_2);
}
然后在支付成功判断语句之后调用send_cheng() 函数就可以了~~~
有需要的朋友可以给我留言,咱们一起学习
我的qq:286609081