| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace Longyi\Pay\Applepay\Http\Controllers;
- use Webkul\Checkout\Facades\Cart;
- use Webkul\Sales\Models\Order;
- use Webkul\Sales\Repositories\OrderRepository;
- use Webkul\Sales\Transformers\OrderResource;
- use Longyi\Pay\Applepay\Payment\Applepay;
- class ApplepayController extends Controller
- {
- /**
- * Create a new controller instance.
- *
- * @return void
- */
- public function __construct(
- protected OrderRepository $orderRepository,
- protected Applepay $applepay,
- ) {}
- public function hook()
- {
- $header = request()->header();
- $rawBody = request()->getContent();
- $event = json_decode($rawBody, true);
- $signatureResult = $this->applepay->webhookSignature($header, $event);
- if (!$signatureResult) {
- @header("HTTP/1.0 400 Bad Request");
- exit;
- }
- $orderId = $event['resource']['invoice_id'];
- $transactionId = $event['resource']['id'];
- $type = $event['event_type'];
- switch ($type) {
- case 'PAYMENT.CAPTURE.COMPLETED':
- $this->applepay->paymentSucceeded($orderId, $transactionId);
- @header("HTTP/1.0 200 ok");
- break;
- default:
- // 对于未知事件类型,记录日志但仍返回成功
- @header("HTTP/1.0 200 ok");
- break;
- }
- }
- }
|