authorize.net 使用 php 集成
Posted
技术标签:
【中文标题】authorize.net 使用 php 集成【英文标题】:authorize.net integration using php 【发布时间】:2013-05-05 10:10:38 【问题描述】:我们使用 authorize.net 实现了 ARB 订阅。已成功完成订阅创建。但是如何使用 php 使用 authorize.net 的订阅 ID 获取订阅状态。因为每天我们都会在我们的网站上更新过期用户详细信息的状态。让我知道还有其他方法吗?
【问题讨论】:
【参考方案1】:您可以使用 ARB API 中的ARBGetSubscriptionStatusRequest
来获取订阅状态。如果你使用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>
*我是该代码的作者
【讨论】:
好的,感谢您的回复。使用此文件,我将使用 cron 每天检查每个用户状态,并在我的网站上更新订阅。以上是关于authorize.net 使用 php 集成的主要内容,如果未能解决你的问题,请参考以下文章
ActiveMerchant - 我可以将商家 ID 号与 Authorize.net 集成吗?
什么是与 Paypal、Google Checkout 和 Authorize.net 一起使用的优秀 PHP 支付库? [关闭]
Authorize.Net Paypal Express PHP API:交易未在 Authorize.Net 中更新,也未捕获正确金额的问题