我试图在Stripe中使用Omnipay,但是我不能传入额外的参数,例如"Name“、"Metadata”或"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中吗?
发布于 2014-04-08 07:10:19
Omnipay使用它自己的参数名称,而不是Stripe的,因为Omnipay试图抽象各种支付网关之间的大部分差异。
现在,omnipay/stripe包不支持发送其中的一些参数(只有amount、currency、description和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包添加额外的参数。我刚刚添加了metadata参数作为示例:
https://github.com/omnipay/stripe/commit/99c82dc42c7c0b9ec58d8c4fb917f3dc5d1c23e2
https://stackoverflow.com/questions/22924994
复制相似问题