1.短信配置里:商家发货时是否给客户发短信  配置了 开启   如果购买者个人资料里的电话没填写,商家点击发货时, 程序会挂掉

解决方法:修改application\common\logic\SmsLogic.php

//modify by houdianjing at 2017-07-03 desc:修复如果客户没填写电话号码 报错的bug
if($sender<>'' && strlen($sender)==11){
$resp = $this->realSendSms($sender, $smsTemp['sms_sign'], $smsParam, $smsTemp['sms_tpl_code']);
if ($resp['status'] == 1) {
M('sms_log')->where(array('id' => $log_id))->save(array('status' => 1)); //修改发送状态为成功
}else{
M('sms_log')->where(array('id' => $log_id))->update(array('error_msg'=>$resp['msg'])); //发送失败, 将发送失败信息保存数据库
}
}else{
M('sms_log')->where(array('id' => $log_id))->update(array('error_msg'=>'用户电话号码错误')); //发送失败, 将发送失败信息保存数据库
}
//modify end

2、订单原路退款无法退回

1.payment_refund方法中的WxPayRefund::MCHID改成了WxPayConfig::$mchid

2.微信证书路径改成绝对路径(我是linux系统,相对路径提示curl错误58)

3.微信退款金额单位改为分,现在没有转换成分

4.退款成功,修改状态有误,退款方法如下

public function refund(){
$return_id = I('id');
$return_goods = M('return_goods')->where("id= $return_id")->find();
$rec_goods = M('order_goods')->where(array('order_id'=>$return_goods['order_id'],'goods_id'=>$return_goods['goods_id']))->find();
$order = M('order')->where(array('order_id'=>$rec_goods['order_id']))->find();
if($order['pay_code'] == 'weixin' || $order['pay_code'] == 'alipay' || $order['pay_code'] == 'alipayMobile'){
$return_money = $rec_goods['goods_price']*$rec_goods['goods_num'];
$prom_amount = $order['coupon_price'] + $order['order_prom_amount'];
if($prom_amount>0){
$return_money = $return_money - round($prom_amount*$return_money/$order['order_amount'],2);
}
if($order['pay_code'] == 'weixin'){
include_once PLUGIN_PATH."payment/weixin/weixin.class.php";
$payment_obj = new \weixin();
$data = array('transaction_id'=>$order['transaction_id'],'total_fee'=>$order['order_amount'],'refund_fee'=>$return_money);
$result = $payment_obj->payment_refund($data);
if($result['return_code'] == 'SUCCESS'){
//modify by houdianjing at 2017-07-03 desc:改变订单状态,status->is_send
M('order_goods')->where(array('rec_id'=>$rec_goods['rec_id']))->save(array('is_send'=>3));
//modify end
//add by houdianjing at 2017-07-03 desc:退款成功后,改变退款状态,订单表状态
M('return_goods')->where(array('order_id'=>$rec_goods['order_id']))->save(array('status'=>3));
M('order')->where(array('order_id'=>$rec_goods['order_id']))->save(array('order_status'=>4));
//add end
$this->success('退款成功');
}else{
$this->error($result['return_msg']);
}
}else{
include_once PLUGIN_PATH."payment/alipay/alipay.class.php";
$payment_obj = new \alipay();
$detail_data = $order['transaction_id'].'^'.$return_money.'^'.'用户申请订单退款';
$data = array('batch_no'=>date('YmdHi').$rec_goods['rec_id'],'batch_num'=>1,'detail_data'=>$detail_data);
$payment_obj->payment_refund($data);
}
}else{
$this->error('该订单支付方式不支持在线退回');
}
}



tpshop使用中遇到的问题的更多相关文章

  1. ORA-02020 : 过多的数据库链接在使用中-Windows环境解决步骤

    一.现象 编译存储过程时报ORA-02020错误. 错误详细信息:ORA-04052在查找远程对象 xx@yy时出错 ORA-00604 : 递归 SQL 级别 1 出现错误 ORA-02020 : ...

  2. Subsonic使用中

    使用中,遇到各种奇葩问题,依依汇总. 1.引用了Subsonic层后,一运行就开始报错,提示未能找到文件!!    //引用后,目标框架可能会被改变,subsonic的默认框架是2.0,请检查框架是否 ...

  3. mysqldump 备份命令使用中的一些经验总结

    mysqldump的一个小坑(自测) 正文:经常使用接触mysql复制功能的朋友应该对mysqldump命令不陌生吧,鄙人最近也在研究学习这一块的内容,经过几天的测试,发现mysqldump使用中容易 ...

  4. <总结>delphi WebBrowser控件的使用中出现的bug

    Delphi WebBrowser控件的使用中出现的bug:  1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...

  5. SSH框架使用中存在的诡异异常

    背景 相信大多数人目前都在使用Spring + Struts2/SpringMVC + Hibernate来构建项目的整体架构,但是在使用中经藏会遇到一些诡异的问题,不知道如果解决,今天我遇到了一个非 ...

  6. VM出现该虚拟机正在使用中的提示,让获取所有权限解决办法

    今天打开虚拟机正要学习,结果说是虚拟机似乎正在使用中,让我重新获取权限.解决办法:打开提示的配置文件的位置,将一个以.lck结尾的文件夹删除或者保存为另外的文件名称,再打开虚拟机就OK了.

  7. cordova + ionic 使用中碰到的一些问题

    cordova + ionic 使用中碰到的一些问题     No Content-Security-Policy meta tag found. Please add one when using ...

  8. VMware“该虚拟机似乎正在使用中”问题

    在用VMware虚拟机的时候,有时会发现打开虚拟机时提示“该虚拟机似乎正在使用中.如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权.否则,请按“取消(C)”按钮以防损坏.配置文件: D ...

  9. 项目使用中Linq使用总结

    项目使用中Linq使用总结 本文旨在和网友分享Linq在项目中的实践,曾经我参与过的项目都能看见Linq的影子.(LinqTosql.LinqToString.LinqToXML.LinqToEnti ...

随机推荐

  1. string,char*及CString类型的相互转换

    首先先介绍一下什么是CString CString是MFC的字符串类,它不是基本类型,而是对字符串的封装,它是自适应的,在UNICODE环境下就是CStringW,在非UNICODE环境下就是CStr ...

  2. 黄聪:WordPress 多站点建站教程(三):主站如何调用子站的文章内容、SQL语句如何写?

    1.如果懂得编程的朋友可以SQL语句,然后加上PHP函数等操作就可以通过直接调用网站的数据库信息来实现想要达到的目的. 既然要用到SQL语句首先得对WordPress多站点数据库有一个了解,多站点激活 ...

  3. 黄聪:定制化WordPress后台自定义仪表盘

    WordPress作为一博客管理系统,相对来说已经相当简洁了,对用户也十分友好,新手也极易上手. 仪表盘是我们登陆WordPress后看到的后台界面,映入眼帘的是各种各样的信息,如WordPress ...

  4. 关于 android百度地图 调用 地理位置 经纬度坐标,只调用一次的解决方法,通知栏不总是 搜索 GPS 。。。

    上代码吧... //读取当前坐标 final LocationClient mLocationClient = new LocationClient(mActivity); mLocationClie ...

  5. javascript精髓篇之原型链维护和继承.

    一.两个原型 很多人都知道javascript是原型继承,每个构造函数都有一个prototype成员,通过它就可以把javascript的继承演义的美轮美奂了. 其实啊,光靠这一个属性是无法完成jav ...

  6. 【POJ】1185 炮兵阵地(状压dp)

    题目 传送门:QWQ 分析 看到$ M<=10 $考虑状压. 然后把每行都压一下,那么每个状态相关的就是上一行和上上行的状态. 然后枚举. 然后复杂度最坏是$ O(100 \times 1024 ...

  7. [失败]SystemTap和火焰图(Flame Graph)

    本文参考http://blog.51cto.com/xuclv/1184517 SystemTap简介: SystemTap provides free software (GPL) infrastr ...

  8. string ids=aduuids.Aggregate("", (m, n) => m + n+",").TrimEnd(',');

    string ids=aduuids.Aggregate("", (m, n) => m + n+",").TrimEnd(',');

  9. PHP 成长规划

    PHP程序员的技术成长规划 作者:黑夜路人(2014/10/15) 转:http://blog.csdn.net/heiyeshuwu/article/details/40098043 按照了解的很多 ...

  10. gridview发布后,编辑改为edit 原因是未安装 dotNetFx40LP_Full_x86_x64zh-Hans中文语言包

    https://www.microsoft.com/zh-cn/download/details.aspx?id=3324