首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Omnipay额外参数

Omnipay额外参数
EN

Stack Overflow用户
提问于 2014-04-07 23:34:33
回答 1查看 1.9K关注 0票数 3

我试图在Stripe中使用Omnipay,但是我不能传入额外的参数,例如"Name“、"Metadata”或"Zip“。

代码语言:javascript
复制
   // 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中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-08 07:10:19

Omnipay使用它自己的参数名称,而不是Stripe的,因为Omnipay试图抽象各种支付网关之间的大部分差异。

现在,omnipay/stripe包不支持发送其中的一些参数(只有amountcurrencydescriptionmetadata)。您可以在这里看到支持的参数:

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

尽管如此,您仍然可以轻松地访问底层Stripe请求来添加您自己的自定义参数:

代码语言:javascript
复制
$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);

请注意:

代码语言:javascript
复制
$data = $request->getData();
$response = $request->sendData($data);

与调用以下内容完全相同:

代码语言:javascript
复制
$response = $request->send();

或者,您可以创建一个拉请求来向Omnipay包添加额外的参数。我刚刚添加了metadata参数作为示例:

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22924994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档