voronkovich / sberbank-acquiring-client

PHP client for Sberbank and Alphabank acquiring REST APIs
MIT License
190 stars 55 forks source link

Как передать корзину при оплате через apple Pay #15

Closed PankovAlxndr closed 4 years ago

PankovAlxndr commented 5 years ago

Если вам не затруднит и у вас найдется время, то прошу вас о помощи, мой вопрос я так же озвучил тут: https://toster.ru/q/647438

Если кратко: 1) как передавать OrderBandle при оплате через apple pay (payWithApplePay)? 2) можно ли в ранее созданный заказ методом (registerOrder) как-то передать на оплату через Apple pay?

сейчас у меня оплата работает, но я не понимаю как передать корзину с товарами и не могу понять как оплатить через apple pay ранее созданный заказ через (registerOrder).

Заранее благодарен за любой ответ!

voronkovich commented 5 years ago

@PankovAlxndr, Я не использовал оплату через ApplePay. Могу лишь предположить, что корзину можно передать как и в методе registerOrder (см. https://github.com/voronkovich/sberbank-acquiring-client/issues/8):

$orderNumber = 777;
$merchant = 'my_merchant';
$paymentToken = 'token';

$result = $client->payWithApplePay($orderNumber, $merchant, $paymentToken, [
    'orderBundle' => [
        'cartItems' => [],
    ]
]);

Если найдёте решение, напишите здесь, другим оно тоже будет полезно.

amvardo commented 4 years ago

@PankovAlxndr, Я не использовал оплату через ApplePay. Могу лишь предположить, что корзину можно передать как и в методе registerOrder (см. #8):

$orderNumber = 777;
$merchant = 'my_merchant';
$paymentToken = 'token';

$result = $client->payWithApplePay($orderNumber, $merchant, $paymentToken, [
    'orderBundle' => [
        'cartItems' => [],
    ]
]);

Если найдёте решение, напишите здесь, другим оно тоже будет полезно.

Реализовывал оплаты через GooglePay, ApplePay. Именно так и работает, проблем особых не возникло.

GooglePay:

$data = $this->sberbank->payWithGooglePay(
                            'orderNumber',
                            'merchant_name',
                            'token - base64',
                            [
                                'returnUrl' => '',
                                'failUrl' => '',
                                'currencyCode' => 643,
                                'phone' => 7922222222,
                                'amount' => 100,
                                'orderBundle' => ['cartItems' => []]
                            ]
             );

ApplePay:

$data = $this->sberbank->payWithApplePay(
                           'orderNumber',
                            'merchant_name',
                            'token - base64',
                            [
                               'orderBundle' => ['cartItems' => []]
                            ]
                        );

P.s - нужно учитывать, что в ответе GooglePay, может прийти acsUrl для редиректа, чтобы подтвердить платеж.

voronkovich commented 4 years ago

@amverdo, спасибо за комментарий и пример кода! В таком случае, решение очевидно и issue можно закрыть.