[bug report] dualfun payment_method cant's update order status
-
hi,为了更清晰地描述bug,我还是用中文吧^_^
【描述】
如果在设置中设置payment_method==’dualfun’,用户在付款跳转到支付宝后选择“即时到账”付款,支付成功后,alipay plugin无法正常更新订单状态,造成待支付超时后出错。【原因】
在配置双接口支付后,用户是可以选择即时到账方式的。由于在trade_status==WAIT_BUYER_PAY后,支付宝会直接回调trade_status==TRADE_FINISHED。而此时¥order_trade_status==2而没有进入if语句执行$this->payment_complete( $order )。并且也没有提前更新订单状态为processing,造成即时进入payment_complete函数也无法完成状态更新。【临时修改代码】
case 'TRADE_FINISHED' : // Check order status before updating $order_needs_updating = ( in_array( $order->status, array('processing', 'completed') ) ) ? false : true; if( $order_needs_updating ){ $status = apply_filters( 'woocommerce_alipay_payment_successful_status', 'processing', $order); } if( $order_trade_status == 4 ){ $this->payment_complete( $order ); } else { $order->update_status( $status, __( 'Payment received, awaiting fulfilment', 'alipay' ) ); update_post_meta( $order_id, '_alipay_trade_current_status', '4'); if( isset($_POST['trade_no']) && !empty($_POST['trade_no']) ){ update_post_meta( $order_id, 'Alipay Trade No.', wc_clean( $_POST['trade_no'] ) ); } $this->payment_complete( $order ); } $this->successful_request( $_POST ); break;
【遗留问题】
按上述代码修改后,订单状态回复正常,但是订单备注的出现顺序始终是反的,也就是先出现“库存减少成功”,再出现“订单完成”,最后出现“买家已付款,处理中”。貌似没有办法简单地修改好。BTW,既然楼主的代码是开源,何不申请个github大家一起来维护。最近我在弄alipay wap网关支付,等有时间的时候可以合并进来。
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
- The topic ‘[bug report] dualfun payment_method cant's update order status’ is closed to new replies.