您可以用 PHP 将送货地址传递给 Stripe Checkout 吗?

Dan*_*Few 4 php stripe-payments stripe-api-php

我正在使用Stripe Checkout API指导网站用户进行付款。

有没有办法将送货地址传递到托管结帐页面,以便从推荐人而不是 Stripe 本身收集该地址?

function createSession()
{
    require 'vendor/autoload.php';
    \Stripe\Stripe::setApiKey('[API_KEY_REDACTED]');
    
    $YOUR_DOMAIN = '[SITE_URL_REDACTED]';
    
    // Calculate price
    $price = 50;
    
    $checkout_session = \Stripe\Checkout\Session::create([
        'billing_address_collection' => 'required',
        'payment_method_types' => ['card'],
        'line_items' => [[
            'price_data' => [
                'currency' => 'gbp',
                'unit_amount' => $price,
                'product_data' => [
                    'name' => 'Product'
                ],
            ],
            'quantity' => 1,
        ]],
        'mode' => 'payment',
        'success_url' => $YOUR_DOMAIN . '/success',
        'cancel_url' => $YOUR_DOMAIN . '/cancel',
    ]);
    
    return json_encode(['id' => $checkout_session->id]);
}
Run Code Online (Sandbox Code Playgroud)

您可以添加以下行以使 Stripe 询问送货地址,但我想从推荐人处传递此地址。

'shipping_address_collection' => [
    'allowed_countries' => ['US', 'CA'],
],
Run Code Online (Sandbox Code Playgroud)

Nol*_*n H 5

为此,您需要创建一个客户并提供他们的送货地址,然后在创建结帐会话时提供该现有客户:

$checkout_session = \Stripe\Checkout\Session::create([
    'customer' => 'cus_123',
    ...
]);
Run Code Online (Sandbox Code Playgroud)