【问题标题】:3D Secure request sending using php使用 php 发送 3D 安全请求
【发布时间】:2013-07-07 16:18:51
【问题描述】:

我正在尝试实现 3d 安全。我有一个 xml,其中包含 3d secure.Like 所需的一些数据:

<CardinalMPI>
<MsgType>cmpi_lookup</MsgType>
<Version>1.7</Version>
<ProcessorId>xxx</ProcessorId>
<MerchantId>xxxxxx</MerchantId>
<TransactionPwd>xxxxxxxxxxx</TransactionPwd>
<TransactionType>C</TransactionType>
<Amount>56999</Amount>
<CurrencyCode>xxxxx</CurrencyCode>
<OrderNumber>xxxx</OrderNumber>
<CardNumber>xxx</CardNumber>
<CardExpMonth>xxx</CardExpMonth>
<CardExpYear>xxx</CardExpYear>
</CardinalMPI>

那我怎样才能用上面的 xml 请求http://msgtest.bankserv.co.za/maps/txns.asp 并得到他们的回复呢?我尝试了 curl、Soap 等,但出现了错误。请帮我详细解答。

我尝试了以下代码。如果此代码不正确,请告诉我。

$writer = new XMLWriter();
$writer->openMemory();

$writer->startElement("CardinalMPI");
$writer->writeElement("MsgType","cmpi_lookup");
$writer->writeElement("Version","1.7");
$writer->writeElement("ProcessorId","xxxxx");
$writer->writeElement("MerchantId","xxxxxxx");
$writer->writeElement("TransactionPwd","xxxxx");
$writer->writeElement("TransactionType","C");
$writer->writeElement("Amount",$xxxx);
$writer->writeElement("CurrencyCode","xxxx");
$writer->writeElement("OrderNumber","xxxxxxxxxx");
$writer->writeElement("CardNumber","'xxxxxxxxx");
$writer->writeElement("CardExpMonth","xx");
$writer->writeElement("CardExpYear","xxxx");
$writer->endElement();
$writer->endElement();
$writer->endDocument();
$request = $writer->outputMemory(true);

$serviceArguments =       array("validateRequest"=>"0","protocol"=>"v_xml","protocolVersion"=>"2.0","request"=> $request);
$client = new SoapClient("msgtest.bankserv.co.za/maps/txns.asp", array('local_cert'=> "certificate.pem"));
$result = $client->Execute($serviceArguments);
$xml=$result->ExecuteResult;

当我运行此代码时,我遇到了异常。

【问题讨论】:

  • 我们可以看看你们的 cURL 和 SOAP 解决方案吗?我们也许可以帮助解决您尝试过的问题。 (将其中一个编辑到您的问题中,并在问题文本中提供与该脚本相关的错误消息,如果您愿意的话)。
  • 我不可能是唯一一个稍微担心您无法自己解决这个问题并且正在处理敏感的信用卡详细信息的人......
  • @Tomdarkness,你不是,网络开发仍然被视为任何有电脑的人都可以做的某种爱好,而不是真正的职业。

标签: php xml 3d-secure


【解决方案1】:

对于发布值,我们可以在 php 中使用 CURL。在这里你可以使用:

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_URL, "your url");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "yr_variable=".$your xml);
$result=curl_exec($ch);
curl_close($ch);

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 2021-11-30
    • 2013-09-15
    • 2013-12-09
    • 1970-01-01
    相关资源
    最近更新 更多