2013-05-10 76 views
0

我們使用authorize.net實現了ARB訂閱。它已成功完成訂閱創建。但如何使用php從authorize.net使用訂閱ID獲得訂閱狀態。因爲我們每天都會在我們的網站上更新過期用戶的詳細信息。讓我知道有沒有其他方法?authorize.net使用php集成

感謝, 穆拉利

回答

1

您可以使用ARBGetSubscriptionStatusRequest的ARB API中獲得訂閱的狀態。如果使用AuthnetXML PHP class *它應該是這樣的:

<?php 
/************************************************************************************************* 

Use the ARB XML API to create get a subscription's status 

SAMPLE XML FOR API CALL 
-------------------------------------------------------------------------------------------------- 
<?xml version="1.0"?> 
<ARBGetSubscriptionStatusRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> 
    <merchantAuthentication> 
    <name>yourloginid</name> 
    <transactionKey>yourtransactionkey</transactionKey> 
    </merchantAuthentication> 
    <refId>Sample</refId> 
    <subscriptionId>1207505</subscriptionId> 
</ARBGetSubscriptionStatusRequest> 

SAMPLE XML RESPONSE 
-------------------------------------------------------------------------------------------------- 
<?xml version="1.0" encoding="utf-8"?> 
<ARBGetSubscriptionStatusResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> 
    <refId>Sample</refId> 
    <messages> 
    <resultCode>Ok</resultCode> 
    <message> 
     <code>I00001</code> 
     <text>Successful.</text> 
    </message> 
    </messages> 
    <status>active</status> 
</ARBGetSubscriptionStatusResponse> 

*************************************************************************************************/ 

    require('../../config.inc.php'); 
    require('../../AuthnetXML.class.php'); 

    $xml = new AuthnetXML(AUTHNET_LOGIN, AUTHNET_TRANSKEY, AuthnetXML::USE_DEVELOPMENT_SERVER); 
    $xml->ARBGetSubscriptionStatusRequest(array(
     'refId' => 'Sample', 
     'subscriptionId' => '1207505' 
    )); 
?> 

<!DOCTYPE html> 
<html> 
<html lang="en"> 
    <head> 
     <title></title> 
     <style type="text/css"> 
      table 
      { 
       border: 1px solid #cccccc; 
       margin: auto; 
       border-collapse: collapse; 
       max-width: 90%; 
      } 

      table td 
      { 
       padding: 3px 5px; 
       vertical-align: top; 
       border-top: 1px solid #cccccc; 
      } 

      pre 
      { 
       overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */ 
       white-space: pre-wrap; /* css-3 */ 
       white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */ 
       white-space: -pre-wrap; /* Opera 4-6 */ 
       white-space: -o-pre-wrap; /* Opera 7 */ /* 
       width: 99%; */ 
       word-wrap: break-word; /* Internet Explorer 5.5+ */ 
      } 

      table th 
      { 
       background: #e5e5e5; 
       color: #666666; 
      } 

      h1, h2 
      { 
       text-align: center; 
      } 
     </style> 
    </head> 
    <body> 
     <h1> 
      ARB :: Get Subscription Status 
     </h1> 
     <h2> 
      Results 
     </h2> 
     <table> 
      <tr> 
       <th>Response</th> 
       <td><?php echo $xml->messages->resultCode; ?></td> 
      </tr> 
      <tr> 
       <th>code</th> 
       <td><?php echo $xml->messages->message->code; ?></td> 
      </tr> 
      <tr> 
       <th>Successful?</th> 
       <td><?php echo ($xml->isSuccessful()) ? 'yes' : 'no'; ?></td> 
      </tr> 
      <tr> 
       <th>Error?</th> 
       <td><?php echo ($xml->isError()) ? 'yes' : 'no'; ?></td> 
      </tr> 
      <tr> 
       <th>status</th> 
       <td><?php echo $xml->status; ?></td> 
      </tr> 
     </table> 
     <h2> 
      Raw Input/Output 
     </h2> 
<?php 
    echo $xml; 
?> 
    </body> 
</html> 

*我的代碼的作者

+0

您reply.using這個文件,我會檢查每個用戶狀態好,謝謝日常使用cron和更新在我的網站上訂閱。 – 2013-05-12 13:07:48