mirror of
				https://github.com/v2board/v2board.git
				synced 2025-10-30 17:02:04 +08:00 
			
		
		
		
	feature: added epay & mGate payment
This commit is contained in:
		| @@ -18,7 +18,8 @@ use Omnipay\Omnipay; | ||||
| use Stripe\Stripe; | ||||
| use Stripe\Source; | ||||
| use Library\BitpayX; | ||||
| use Library\PayTaro; | ||||
| use Library\MGate; | ||||
| use Library\Epay; | ||||
|  | ||||
| class OrderController extends Controller | ||||
| { | ||||
| @@ -213,12 +214,12 @@ class OrderController extends Controller | ||||
|                     'data' => $this->bitpayX($order) | ||||
|                 ]); | ||||
|             case 5: | ||||
|                 if (!(int)config('v2board.paytaro_enable')) { | ||||
|                 if (!(int)config('v2board.mgate_enable')) { | ||||
|                     abort(500, '支付方式不可用'); | ||||
|                 } | ||||
|                 return response([ | ||||
|                     'type' => 1, | ||||
|                     'data' => $this->payTaro($order) | ||||
|                     'data' => $this->mgate($order) | ||||
|                 ]); | ||||
|             case 6: | ||||
|                 if (!(int)config('v2board.stripe_card_enable')) { | ||||
| @@ -228,6 +229,14 @@ class OrderController extends Controller | ||||
|                     'type' => 2, | ||||
|                     'data' => $this->stripeCard($order, $request->input('token')) | ||||
|                 ]); | ||||
|             case 7: | ||||
|                 if (!(int)config('v2board.epay_enable')) { | ||||
|                     abort(500, '支付方式不可用'); | ||||
|                 } | ||||
|                 return response([ | ||||
|                     'type' => 1, | ||||
|                     'data' => $this->epay($order) | ||||
|                 ]); | ||||
|             default: | ||||
|                 abort(500, '支付方式不存在'); | ||||
|         } | ||||
| @@ -282,9 +291,9 @@ class OrderController extends Controller | ||||
|             array_push($data, $bitpayX); | ||||
|         } | ||||
|  | ||||
|         if ((int)config('v2board.paytaro_enable')) { | ||||
|         if ((int)config('v2board.mgate_enable')) { | ||||
|             $obj = new \StdClass(); | ||||
|             $obj->name = config('v2board.paytaro_name', '在线支付'); | ||||
|             $obj->name = config('v2board.mgate_name', '在线支付'); | ||||
|             $obj->method = 5; | ||||
|             $obj->icon = 'wallet'; | ||||
|             array_push($data, $obj); | ||||
| @@ -298,6 +307,14 @@ class OrderController extends Controller | ||||
|             array_push($data, $obj); | ||||
|         } | ||||
|  | ||||
|         if ((int)config('v2board.epay_enable')) { | ||||
|             $obj = new \StdClass(); | ||||
|             $obj->name = config('v2board.epay_name', '在线支付'); | ||||
|             $obj->method = 7; | ||||
|             $obj->icon = 'wallet'; | ||||
|             array_push($data, $obj); | ||||
|         } | ||||
|  | ||||
|         return response([ | ||||
|             'data' => $data | ||||
|         ]); | ||||
| @@ -454,16 +471,28 @@ class OrderController extends Controller | ||||
|         return isset($result['payment_url']) ? $result['payment_url'] : false; | ||||
|     } | ||||
|  | ||||
|     private function payTaro($order) | ||||
|     private function mgate($order) | ||||
|     { | ||||
|         $payTaro = new PayTaro(config('v2board.paytaro_app_id'), config('v2board.paytaro_app_secret')); | ||||
|         $result = $payTaro->pay([ | ||||
|             'app_id' => config('v2board.paytaro_app_id'), | ||||
|         $mgate = new MGate(config('v2board_mgate_url'), config('v2board.mgate_app_id'), config('v2board.mgate_app_secret')); | ||||
|         $result = $mgate->pay([ | ||||
|             'app_id' => config('v2board.mgate_app_id'), | ||||
|             'out_trade_no' => $order->trade_no, | ||||
|             'total_amount' => $order->total_amount, | ||||
|             'notify_url' => url('/api/v1/guest/order/payTaroNotify'), | ||||
|             'notify_url' => url('/api/v1/guest/order/mgateNotify'), | ||||
|             'return_url' => config('v2board.app_url', env('APP_URL')) . '/#/order' | ||||
|         ]); | ||||
|         return $result; | ||||
|     } | ||||
|  | ||||
|     private function epay($order) | ||||
|     { | ||||
|         $epay = new Epay(config('v2board.epay_url'), config('v2board.epay_pid'), config('v2board.epay_key')); | ||||
|         return $epay->pay([ | ||||
|             'money' => $order->total_amount / 100, | ||||
|             'name' => $order->trade_no, | ||||
|             'notify_url' => url('/api/v1/guest/order/epayNotify'), | ||||
|             'return_url' => config('v2board.app_url', env('APP_URL')) . '/#/order', | ||||
|             'out_trade_no' => $order->trade_no | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user