2

I am currently trying to integrate with SecureNet. I read through the latest pdf (4.1.5) but it is still not clear to me how the request should be structured.

I keep getting:

Endpoint not found.

Can anyone provide production request examples with confidential fields XXX'd out?

4

2 回答 2

4

啊,API 团队终于回复我了。这里是。希望有一天它可以帮助某人。

要求

POST https://certify.securenet.com/API/gateway.svc/webHttp/ProcessTransaction HTTP/1.1
User-Agent: Fiddler
Content-Type: application/xml; charset=utf-8
Host: certify.securenet.com
Content-Length: 1839

<?xml version="1.0" encoding="utf-8"?><TRANSACTION xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://gateway.securenet.com/API/Contracts">
<AMOUNT>11</AMOUNT>
<AUTHCODE></AUTHCODE>
<AUTO i:nil="true" />
<CARD>
<CARDCODE>996</CARDCODE>
<CARDNUMBER>4012000033330026</CARDNUMBER>
<EXPDATE>0414</EXPDATE>
<KSN i:nil="true" />
<PINBLOCK>PIN Block</PINBLOCK>
<TRACKDATA i:nil="true" /></CARD>
<CASHBACK_AMOUNT>0</CASHBACK_AMOUNT>
<CHECK i:nil="true" />
<CODE>0000</CODE>
<CUSTOMERID i:nil="true"/>
<CUSTOMERIP></CUSTOMERIP>
<CUSTOMER_BILL>
<ADDRESS></ADDRESS>
<CITY></CITY>
<COMPANY></COMPANY>
<COUNTRY></COUNTRY>
<EMAIL></EMAIL>
<EMAILRECEIPT>FALSE</EMAILRECEIPT>
<FIRSTNAME></FIRSTNAME>
<LASTNAME></LASTNAME>
<PHONE></PHONE>
<STATE></STATE>
<ZIP></ZIP>
</CUSTOMER_BILL>
<CUSTOMER_SHIP i:nil="true" />
<DCI>0</DCI>
<DEVICECODE></DEVICECODE>
<ENCRYPTION i:nil="true" />
<ENTRYSOURCE></ENTRYSOURCE>
<HOTEL i:nil="true" />
<INDUSTRYSPECIFICDATA>0</INDUSTRYSPECIFICDATA>
<INSTALLMENT_SEQUENCENUM>0</INSTALLMENT_SEQUENCENUM>
<INVOICEDESC></INVOICEDESC>
<INVOICENUM i:nil="true" />
<LEVEL2 i:nil="true" />
<LEVEL3 i:nil="true" />
<MARKETSPECIFICDATA i:nil="true"/>
<MERCHANT_KEY>
<GROUPID>0</GROUPID>
<SECUREKEY>lbGXSJZsV9Oy</SECUREKEY>
<SECURENETID>7000000</SECURENETID>
</MERCHANT_KEY>
<METHOD>CC</METHOD>
<MPI i:nil="true" />
<NOTE></NOTE>
<ORDERID>12311601</ORDERID>
<OVERRIDE_FROM>0</OVERRIDE_FROM>
<PAYMENTID i:nil="true" />
<PETROLEUM i:nil="true" />
<PRODUCTS i:nil="true" />
<REF_TRANSID>0</REF_TRANSID>
<RETAIL_LANENUM>0</RETAIL_LANENUM>
<SECONDARY_MERCHANT_KEY i:nil="true" />
<SERVICE i:nil="true" />
<TEST>FALSE</TEST>
<TOTAL_INSTALLMENTCOUNT>0</TOTAL_INSTALLMENTCOUNT>
<TRANSACTION_SERVICE>0</TRANSACTION_SERVICE>
<USERDEFINED i:nil="true" />
</TRANSACTION>

回复

HTTP/1.1 200 OK
Date: Fri, 08 Mar 2013 23:48:37 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: application/xml; charset=utf-8
Content-Length: 1763
Set-Cookie: TS6d10c9=d81f0c76c1ab996b6024b4b7340467c76c45ae1650897225513a7909; Path=/
Set-Cookie: TS6d10c9_28=ab9f901af259d97913f9b001c3f710f66c45ae1650897225000000000000000000513a7908522b1347a8bb858f; Path=/

<GATEWAYRESPONSE xmlns="http://gateway.securenet.com/API/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ABRESPONSE i:nil="true"/><TRANSACTIONRESPONSE><RESPONSE_CODE>1</RESPONSE_CODE><RESPONSE_REASON_CODE>0000</RESPONSE_REASON_CODE><RESPONSE_REASON_TEXT>Approved</RESPONSE_REASON_TEXT><RESPONSE_SUBCODE/><ADDITIONALAMOUNT>0</ADDITIONALAMOUNT><ADDITIONALDATA1/><ADDITIONALDATA2/><ADDITIONALDATA3/><ADDITIONALDATA4/><ADDITIONALDATA5/><AUTHCODE>CRO3B4</AUTHCODE><AUTHORIZEDAMOUNT>11.00</AUTHORIZEDAMOUNT><AVS_RESULT_CODE>Y</AVS_RESULT_CODE><BANK_ACCOUNTNAME/><BANK_ACCOUNTTYPE/><BATCHID>0</BATCHID><CARDHOLDER_FIRSTNAME/><CARDHOLDER_LASTNAME/><CARDLEVEL_RESULTS/><CARDTYPE>VI</CARDTYPE><CARD_CODE_RESPONSE_CODE>M</CARD_CODE_RESPONSE_CODE><CASHBACK_AMOUNT>0</CASHBACK_AMOUNT><CAVV_RESPONSE_CODE/><CHECKNUM i:nil="true"/><CODE>0000</CODE><CUSTOMERID/><CUSTOMER_BILL><ADDRESS/><CITY/><COMPANY/><COUNTRY/><EMAIL/><EMAILRECEIPT>FALSE</EMAILRECEIPT><FIRSTNAME/><LASTNAME/><PHONE/><STATE/><ZIP/></CUSTOMER_BILL><EXPIRYDATE>0414</EXPIRYDATE><GRATUITY>0</GRATUITY><INDUSTRYSPECIFICDATA>P</INDUSTRYSPECIFICDATA><LAST4DIGITS>0026</LAST4DIGITS><LEVEL2_VALID>FALSE</LEVEL2_VALID><LEVEL3_VALID>FALSE</LEVEL3_VALID><MARKETSPECIFICDATA/><METHOD>CC</METHOD><NETWORKCODE/><NETWORKID/><ORDERID>12311601</ORDERID><PAYMENTID/><RETREFERENCENUM/><SECURENETID>7000000</SECURENETID><SETTLEMENTAMOUNT>11.00</SETTLEMENTAMOUNT><SETTLEMENTDATETIME>03082013184837</SETTLEMENTDATETIME><SYSTEM_TRACENUM/><TRACKTYPE>0</TRACKTYPE><TRANSACTIONAMOUNT>11.00</TRANSACTIONAMOUNT><TRANSACTIONDATETIME>03082013184837</TRANSACTIONDATETIME><TRANSACTIONID>111177310</TRANSACTIONID></TRANSACTIONRESPONSE><VAULTACCOUNTRESPONSE i:nil="true"/><VAULTCUSTOMERRESPONSE i:nil="true"/></GATEWAYRESPONSE>
于 2013-03-09T00:00:26.640 回答
1

这篇文章对我很有帮助,因为它向我展示了一些最初不可见的字段。如果您不想使用 SecureNet 的 CodeIgniter 类,我整理了一个简单的基于 PHP/SOAP 的示例来执行退款/捕获/无效。将其适应其他任何东西应该不会太困难。

//Certifying?
$certify = 1;

//Build Array
$arg = array(
    "MERCHANT_KEY" => array(
        "GROUPID" => 0,
        "SECUREKEY" => "XXXXXXXXX",
        "SECURENETID" => "XXXXXXXXX",
    ),
    "CARD" => array(
        "CARDNUMBER" => $card_number,
    ),
    "REF_TRANSID" => $processor_transaction_id,
    "AMOUNT" => $amount,
    "METHOD" => "CC",
    "DCI" => 0,
    "INSTALLMENT_SEQUENCENUM" => 0,
    "GROUPID" => 0,
    "OVERRIDE_FROM" => 0,
    "RETAIL_LANENUM" => 0,
    "TOTAL_INSTALLMENTCOUNT" => 0,
    "TRANSACTION_SERVICE" => 0,
    "TEST" => $testing ? "FALSE" : "TRUE",
);

//Refund
if ($action == "refund") {
    $arg['CODE'] = "0500";

//Capture
} elseif ($action == "capture") {
    $arg['CODE'] = "0200";

//Partial Void
} elseif ($action == "void") {
    $arg['CODE'] = "0401";
}

//Certify or Production URL's
$base_url = "http://gateway.securenet.com/api/gateway.svc?wsdl"; //not for sure on these urls
$soap_url = "https://gateway.securenet.com/api/gateway.svc/soap"; //not for sure on these urls
if ($certify) {
    $base_url = "http://certify.securenet.com/api/gateway.svc?wsdl";
    $soap_url = "https://certify.securenet.com/api/gateway.svc/soap";
}

//Connect
$client = new \SoapClient($base_url, array('trace' => 1, 'exceptions' => true));
$client->__setLocation($soap_url);

//Successful!
try {
    $result = $client->ProcessTransaction(array("TRANSACTION" => $arg));

    if ($certify) {
        echo 'REQUEST: ' . htmlentities($client->__getLastRequest()) . "<br><br>";
        echo 'RESPONSE: ' . htmlentities($client->__getLastResponse());
    }

    //1 = approve, 2 = declined, 3 = error
    $response_code = $result->ProcessTransactionResult->TRANSACTIONRESPONSE->RESPONSE_CODE;
    $response_text = $result->ProcessTransactionResult->TRANSACTIONRESPONSE->RESPONSE_REASON_TEXT;

//There Was An Error
} catch (\Exception $e) {

    if ($certify) {
        echo 'REQUEST: ' . htmlentities($client->__getLastRequest()) . "<br><br>";
        echo 'RESPONSE: ' . htmlentities($client->__getLastResponse());
    }

    echo "ERROR: " . $e->getMessage() . "<br><br>";
    die;

}

其他有用的是这些文档,这些文档在 SecureNet 上似乎不再可用。http://www.scribd.com/doc/202100111/SecureNet-Docs

于 2014-01-25T05:14:10.600 回答