- 微信扫一扫 -
QQ:181814630
电话:15116362044
演示角色 | 演示地址 | 账号 | 密码 |
---|---|---|---|
后台PC端 | 点击进入 | dsshop | 123456 |
用户PC端 | 点击进入 | buyer | 123456 |
手机端 | 点击进入 | buyer | 123456 |
安卓APP下载地址 | http://www.csdeshang.com/document/dsshop/dsshop_uniapp_android.apk |
用户端
用户手机端安卓APP
(使用浏览器打开)
演示角色 | 演示地址 | 账号 | 密码 |
---|---|---|---|
后台PC端 | 点击进入 | dso2o | 123456 |
用户PC端 | 点击进入 | buyer | 123456 |
卖家PC端 | 点击进入 | buyer | 123456 |
服务机构PC端 | 点击进入 | 后台添加 | |
用户手机端 | 点击进入 | buyer | 123456 |
商家手机端 | 点击进入 | buyer | 123456 |
配送员 | 点击进入 | 测试配送员 | 123456 |
服务机构手机端 | 点击进入 | test1 | 123456 |
安卓APP下载地址 | http://www.csdeshang.com/document/dso2o/dso2o_uniapp_android.apk |
用户端
商家端
配送员管理端
服务机构端
用户端安卓APP
(使用浏览器打开)
商家端安卓APP
(使用浏览器打开)
配送员管理安卓APP
(使用浏览器打开)
服务机构安卓APP
(使用浏览器打开)
演示角色 | 演示地址 | 账号 | 密码 |
---|---|---|---|
后台PC端 | 点击进入 | dsmall | 123456 |
用户PC端 | 点击进入 | buyer | 123456 |
商家PC端 | 点击进入 | buyer | 123456 |
用户手机端 | 点击进入 | buyer | 123456 |
商家手机端 | 点击进入 | buyer | 123456 |
门店手机端 | 点击进入 | seller | 123456 |
安卓APP下载地址 | http://www.csdeshang.com/document/dsmall/dsmall_uniapp_android.apk |
用户端
商家端
门店端
用户安卓APP(使用浏览器打开)
商家安卓APP(使用浏览器打开)
门店安卓APP(使用浏览器打开)
线上支付成功后,异步回调最终统一都要经过/home/payment/notify来处理支付成功的后续操作。通过支付插件中的verify_notify验证成功,调用payment的logic模型中的updateOrder方法进行处理。
$logic_payment = model('payment', 'logic'); $result = $logic_payment->getPaymentInfo($payment_code); $payment_info = $result['data']; //创建支付接口对象 $payment_api = new $payment_info['payment_code']($payment_info); //对进入的参数进行远程数据判断 $verify = $payment_api->verify_notify(); if ($verify['trade_status'] != 1) { exit; } $out_trade_no = $verify['out_trade_no']; #内部订单号 $trade_no = $verify['trade_no']; #交易订单号 $order_type = $verify['order_type']; #交易类型 $update_result = $logic_payment->updateOrder($out_trade_no, $trade_no, $order_type, $show_code?$show_code:$payment_code); exit($update_result ? 'success' : 'fail');
在updateOrder方法中,分别处理了三种支付情况:实物订单、虚拟订单、预存款充值,是通过out_trade_no参数进行判断的。
$out_trade_no = current(explode('_', $out_trade_no)); if ($order_type == 'real_order') { $order = $this->getRealOrderInfo($out_trade_no); if (intval($order['data']['api_paystate'])) { //订单已支付 return true; } $order_list = $order['data']['order_list']; $result = $this->updateRealOrder($out_trade_no, $payment_code, $order_list, $trade_no); }elseif($order_type == 'vr_order') { $order = $this->getVrOrderInfo($out_trade_no); if ($order['data']['order_state'] != ORDER_STATE_NEW) { //订单已支付 return true; } $result = $this->updateVrOrder($out_trade_no, $payment_code, $order['data'], $trade_no); }elseif($order_type == 'pd_order') { $order = $this->getPdOrderInfo($out_trade_no); if ($order['data']['pdr_payment_state'] == 1) { //订单已支付 return true; } $result = $this->updatePdOrder($out_trade_no, $payment_code, $order['data'], $trade_no); } return $result['code'] ? TRUE : FALSE;
如果是实物订单,支付成功后,则更新订单状态为已付款,并给卖家发送通知,然后生成订单日志。
如果是虚拟订单,支付成功后,则更新订单状态为已付款,并且发放虚拟兑换码,同时通知买家和卖家。
如果是预存款充值,支付成功后,则更新用户在平台中的预存款余额。