ShopWind多商户系统在支付订单时,如果订单金额为零,或使用积分、其他优惠方式抵扣货款后,使订单金额为零时,优化为以下支付流程:
1.不显示除余额支付外的其他在线支付方式
2.使用余额支付时不再要求输入支付密码,点“确认支付”后直接支付完成
3.后台不再验证支付密码
修改代码如下:
1、打开apiserver\controllers\CashierController.php 文件, 在public function actionPay()函数中增加判断条件 && $orderInfo['amount'] > 0
// 如果是余额支付,验证支付密码
if (in_array(strtolower($post->payment_code), array('deposit'))) {
if (!DepositAccountModel::checkAccountPassword($post->password, Yii::$app->user->id)) {
return $respond->output(Respond::PARAMS_INVALID, Language::get('password_error')),
}
}
修改为
// 如果是余额支付,且支付金额大于零,验证支付密码
if (in_array(strtolower($post->payment_code), array('deposit')) && $orderInfo['amount'] > 0) {
if (!DepositAccountModel::checkAccountPassword($post->password, Yii::$app->user->id)) {
return $respond->output(Respond::PARAMS_INVALID, Language::get('password_error')),
}
}
注意:修改好代码之后,将这段(if)代码块往上移动一个位置(以避免找不到$orderInfo变量的问题)
2、打开shopwind移动端\pages\cashier\pay.vue文件, 在submit: function()函数中增加判断条件 && this.orderInfo.amount > 0
submit: function() {
if (this.payment_code == 'deposit') {
return this.$refs.popup.open()
}
model.submit(this)
},
修改为
submit: function() {
if (this.payment_code == 'deposit' && this.orderInfo.amount > 0) {
return this.$refs.popup.open()
}
model.submit(this)
},