|
@@ -7,6 +7,8 @@ use addons\epay\library\Service;
|
|
|
|
|
|
use addons\epay\library\Wechat;
|
|
|
use addons\third\model\Third;
|
|
|
+use app\api\model\Delivery;
|
|
|
+use app\api\model\DeliveryTrade;
|
|
|
use app\common\library\Auth;
|
|
|
use think\addons\Controller;
|
|
|
use think\Response;
|
|
@@ -555,4 +557,59 @@ class Api extends Controller
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 支付成功回调
|
|
|
+ */
|
|
|
+ public function notifyxde()
|
|
|
+ {
|
|
|
+ /* $type = $this->request->param('type');
|
|
|
+ if (!Service::checkNotify($type)) {
|
|
|
+ echo '签名错误';
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ */
|
|
|
+ $xml = simplexml_load_string(file_get_contents("php://input"), 'SimpleXMLElement', LIBXML_NOCDATA);
|
|
|
+ foreach ($xml as $k => $v) {
|
|
|
+ $data[(string) $k] = (string) $v;
|
|
|
+ }
|
|
|
+ // print_r($order_id);
|
|
|
+ $trade = DeliveryTrade::where('out_trade_no', $data['out_trade_no'])->where('status', 'unpay')->find();
|
|
|
+
|
|
|
+ if ($trade) {
|
|
|
+ if ($data['return_code'] == 'SUCCESS') {
|
|
|
+ // 更发货交易订单状态
|
|
|
+ $trade->save([
|
|
|
+ 'pay_method' => 'alipay',
|
|
|
+ 'pay_rmb' => $data['total_amount'],
|
|
|
+ 'alipay_trade_no' => $data['trade_no'],
|
|
|
+ 'pay_time' => time(),
|
|
|
+ 'status' => 'paid'
|
|
|
+ ]);
|
|
|
+ // 变更发货订单状态
|
|
|
+ $deliveryOrder = Delivery::where('delivery_trade_id', $trade->id)->select();
|
|
|
+ $prizeIds = [];
|
|
|
+ foreach ($deliveryOrder as $order) {
|
|
|
+ $order->save(['status' => 'undelivered']);
|
|
|
+ $prizeIds[] = $order->prize_id;
|
|
|
+ }
|
|
|
+ // 变更奖品状态
|
|
|
+ Prizerecord::whereIn('id', $prizeIds)->update(['status' => 'delivery', 'delivery_time' => time()]);
|
|
|
+ } else {
|
|
|
+ echo 'fail';
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ echo 'fail';
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function deliverypaysuccess()
|
|
|
+ {
|
|
|
+ $this->success("恭喜你!支付成功!", '/h5/#/');
|
|
|
+ }
|
|
|
+
|
|
|
}
|