diff --git a/app/Http/Controllers/Guest/OrderController.php b/app/Http/Controllers/Guest/OrderController.php index c957ad7c..37091f02 100644 --- a/app/Http/Controllers/Guest/OrderController.php +++ b/app/Http/Controllers/Guest/OrderController.php @@ -5,10 +5,54 @@ namespace App\Http\Controllers\Guest; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\Order; +use Omnipay\Omnipay; use Illuminate\Support\Facades\Log; class OrderController extends Controller { + public function alipayNotify (Request $request) { + Log::info('alipayNotifyData: ' . json_encode($_POST)); + $gateway = Omnipay::create('Alipay_AopF2F'); + $gateway->setSignType('RSA2'); //RSA/RSA2 + $gateway->setAppId(config('v2board.alipay_appid')); + $gateway->setPrivateKey(config('v2board.alipay_privkey')); // 可以是路径,也可以是密钥内容 + $gateway->setAlipayPublicKey(config('v2board.alipay_pubkey')); // 可以是路径,也可以是密钥内容 + $request = $gateway->completePurchase(); + $request->setParams($_POST); //Optional + try { + /** @var \Omnipay\Alipay\Responses\AopCompletePurchaseResponse $response */ + $response = $request->send(); + + if($response->isPaid()){ + $order = Order::where('trade_no', $_POST['out_trade_no'])->first(); + if (!$order) { + abort(500, 'ERROR'); + } + if ($order->status !== 0) { + die('SUCCESS'); + } + $order->status = 1; + if (!$order->save()) { + abort(500, 'ERROR'); + } + /** + * Payment is successful + */ + die('success'); //The response should be 'success' only + }else{ + /** + * Payment is not successful + */ + die('fail'); + } + } catch (Exception $e) { + /** + * Payment is not successful + */ + die('fail'); + } + } + public function stripeNotify (Request $request) { Log::info('stripeNotifyData: ' . json_encode($request->input()));