3

Stripe で Omnipay API を使用しようとしていますが、「名前」、「メタデータ」、「Zip」などの追加パラメータを渡すことができません。

   // The token is grabbed from stripe JS
   $this->stripe_gateway = Omnipay::create('Stripe');

   $response = $this->stripe_gateway->purchase([
        'amount' => $amount,
        'currency' => 'usd',
        'name' => $name,
        'description' => $product->title,
        'zip_address' => $zip,
        'metadata' => [
            'name' => $name,
            'user_id' => $this->session->get('id')
        ],
        'token' => $stripeToken,
    ])->send();

これは API に組み込まれていませんか?

4

1 に答える 1

6

Omnipay は、Stripe のものではなく、独自のパラメータ名を使用します。これは、オムニペイがさまざまな支払いゲートウェイ間の違いのほとんどを抽象化しようとするためです.

現在、omnipay/stripeパッケージはこれらのパラメーターの一部の送信をサポートしていません ( amountcurrencydescription、および nowのみmetadata)。サポートされているパラメータは次のとおりです。

https://github.com/omnipay/stripe/blob/master/src/Message/AuthorizeRequest.php

とはいえ、基になる Stripe リクエストに簡単にアクセスして、独自のカスタム パラメータを追加することもできます。

$request = $this->stripe_gateway->purchase([
    'amount' => $amount,
    'token' => $stripeToken,
    'metadata' => ['foo' => 'bar'],
]);
$data = $request->getData();

$data['zip_address'] = '12345';
$data['another_custom_parameter'] = 'wow';
$response = $request->sendData($data);

ご了承ください:

$data = $request->getData();
$response = $request->sendData($data);

次の呼び出しとまったく同じです。

$response = $request->send();

または、プル リクエストを作成して、Omnipay Stripe パッケージに追加のパラメーターを追加することもできます。metadataこの例として、パラメーターを追加しました。

https://github.com/omnipay/stripe/commit/99c82dc42c7c0b9ec58d8c4fb917f3dc5d1c23e2

于 2014-04-08T07:10:19.350 に答える