gpt4 book ai didi

php - 在购买前发布到端点以获取重定向 url

转载 作者:可可西里 更新时间:2023-11-01 12:21:46 24 4
gpt4 key购买 nike

我正在尝试为名为 creditguard 的本地网关创建自定义 omnipay 驱动程序。对于此网关,您需要将数据发布到端点并取回支付表单的重定向 URL。

我的问题是您如何在购买前发帖并获得回复?

编辑:

网关.php

    class Gateway extends AbstractGateway
{
public function getName()
{
return 'Creditguard';
}

public function getDefaultParameters()
{
return array();

}

public function getEndpoint()
{
return 'https://verifonetest.creditguard.co.il/xpo/Relay';
}



public function purchase(array $parameters = array())
{
return $this->createRequest('\Nirz\Creditguard\Message\PurchaseRequest', $parameters);

}

public function completePurchase(array $parameters = array())
{
return $this->createRequest('\Nirz\Creditguard\Message\CompletePurchaseRequest', $parameters);
}

}

PurchaseRequest.php

  class PurchaseRequest extends AbstractRequest
{
protected $liveEndpoint = 'https://verifonetest.creditguard.co.il/xpo/Relay';
protected $testEndpoint = 'https://verifonetest.creditguard.co.il/xpo/Relay';


public function getData()
{
$this->validate('amount');

// Either the nodifyUrl or the returnUrl can be provided.
// The returnUrl is deprecated, as strictly this is a notifyUrl.
if (!$this->getNotifyUrl()) {
$this->validate('returnUrl');
}

$data = array();
$data['user'] = 'user';
$data['password'] = 'password';
$data['tid'] = '11111111';
$data['mid'] = '111111';
$data['amount'] = '20000';
$data['int_in'] = '<ashrait>
<request>
<version>1000</version>
<language>HEB</language>
<dateTime></dateTime>
<command>doDeal</command>
<doDeal>
<terminalNumber>'.$data['tid'].'</terminalNumber>
<mainTerminalNumber/>
<cardNo>CGMPI</cardNo>
<total>'.$data['amount'].'</total>
<transactionType>Debit</transactionType>
<creditType>RegularCredit</creditType>
<currency>ILS</currency>
<transactionCode>Phone</transactionCode>
<authNumber/>
<numberOfPayments/>
<firstPayment/>
<periodicalPayment/>
<validation>TxnSetup</validation>
<dealerNumber/>
<user>'. $data['user'] .'</user>
<mid>'.$data['mid'].'</mid>
<uniqueid>'.time().rand(100,1000).'</uniqueid>
<mpiValidation>autoComm</mpiValidation>
<email>someone@creditguard.co.il</email>
<clientIP/>
<customerData>
<userData1/>
<userData2/>
<userData3/>
<userData4/>
<userData5/>
<userData6/>
<userData7/>
<userData8/>
<userData9/>
<userData10/>
</customerData>
</doDeal>
</request>
</ashrait>';

return $data;
}

public function sendData($data)
{
// $httpResponse = $this->httpClient->post($this->getEndpoint(), null, $data);
return $this->response = new PurchaseResponse($this, $data);
}

public function getEndpoint()
{
return $this->getTestMode() ? $this->testEndpoint : $this->liveEndpoint;
}
}

PurchaseResponse.php

    class PurchaseResponse extends AbstractResponse implements RedirectResponseInterface
{
public function isSuccessful()
{
return false;
}

public function isRedirect()
{
return true;
}

public function getRedirectUrl()
{
// return $this->getRequest()->getEndpoint().'?'.http_build_query($this->data);
return $this->getRequest()->data['mpiHostedPageUrl'];
// return isset($this->data['mpiHostedPageUrl']) ? $this->data['mpiHostedPageUrl'] : null;
}

public function getRedirectMethod()
{
return 'GET';
}

public function getRedirectData()
{
return [];

}
}

不确定如何获取响应的 mpiHostedPageUrl,以便我可以重定向到正确的 url。

最佳答案

假设this是有问题的支付网关文档。

您只需继续提出交易请求,客户将不会被收取费用,因为他们必须在下一页输入他们的付款详细信息来授权它。

该交易请求的响应包含一个元素 mpiHostedPageUrl ,您可以在该文档的第 13 页看到,其中包含您需要从响应中获取的 URL 以提供重定向。

关于php - 在购买前发布到端点以获取重定向 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45979111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com