我正在尝试使用 PHP 创建 Authorize.net 定期订阅。我安装了 Composer,然后使用这里所示的 composer.json https://github.com/AuthorizeNet/sample-code-php/blob/master/composer.json来安装 Authorize.net SDK。现在我正在尝试使用此处找到的代码在我的沙盒帐户上创建订阅:https ://github.com/AuthorizeNet/sample-code-php/blob/master/RecurringBilling/create-subscription.php 。
当我尝试运行它时,它给了我以下错误:
致命错误:未捕获的异常“异常”,消息“从 api 获取有效响应时出错。检查日志文件以获取 /home/tpmadmin/public_html/vendor/authorizenet/authorizenet/lib/net/authorize/api/controller/base/ApiOperationBase.php:122 中的错误详细信息:122 堆栈跟踪:#0 /home/tpmadmin/public_html/ vendor/authorizenet/authorizenet/lib/net/authorize/api/controller/base/ApiOperationBase.php(104): net\authorize\api\controller\base\ApiOperationBase->execute(' https://apitest ...' ) #1 /home/tpmadmin/public_html/test.php(58): net\authorize\api\controller\base\ApiOperationBase->executeWithApiResponse(' https://apitest ...') #2 {main} 抛出/home/tpmadmin/public_html/vendor/authorizenet/authorizenet/lib/net/authorize/api/controller/base/ApiOperationBase。
我检查了错误日志,它向我显示以下内容:
Tue, 13 Oct 2015 06:51:05 +0000:CURL ERROR: SSL certificate problem: unable to get local issuer certificate
Tue, 13 Oct 2015 06:51:22 +0000: Request Serialization Begin
Tue, 13 Oct 2015 06:51:22 +0000: Request Serialization End
Tue, 13 Oct 2015 06:51:22 +0000: Url: https://apitest.authorize.net/xml/v1/request.api
Tue, 13 Oct 2015 06:51:22 +0000:Request to AnetApi:
<?xml version="1.0" encoding="UTF-8"?>
<ARBCreateSubscriptionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name><![CDATA[MY_API_LOGIN]]></name>
<transactionKey><![CDATA[MY_TRANSACTION_KEY]]></transactionKey>
</merchantAuthentication>
<refId><![CDATA[ref1444719082]]></refId>
<subscription>
<name><![CDATA[Sample Subscription]]></name>
<paymentSchedule>
<interval>
<length>1</length>
<unit><![CDATA[months]]></unit>
</interval>
<startDate><![CDATA[2020-08-30]]></startDate>
<totalOccurrences>12</totalOccurrences>
<trialOccurrences>1</trialOccurrences>
</paymentSchedule>
<amount>10.29</amount>
<trialAmount>0.00</trialAmount>
<payment>
<creditCard>
<cardNumber><![CDATA[4111111111111111]]></cardNumber>
<expirationDate><![CDATA[2020-12]]></expirationDate>
</creditCard>
</payment>
<billTo>
<firstName><![CDATA[John]]></firstName>
<lastName><![CDATA[Smith]]></lastName>
</billTo>
</subscription>
</ARBCreateSubscriptionRequest>
Sending 'XML' Request type
Tue, 13 Oct 2015 06:51:22 +0000:Sending http request via Curl
Tue, 13 Oct 2015 06:51:23 +0000:Response from AnetApi:
Tue, 13 Oct 2015 06:51:23 +0000:CURL ERROR: SSL certificate problem: unable to get local issuer certificate`
注意:在上面的消息中,我替换了我的实际 API_LOGIN_ID 和 TRANSACTION_KEY。真实消息具有正确的登录信息。
我不太了解 SSL 证书或可能导致此问题的原因。我在谷歌上搜索了几个小时都没有运气。任何帮助或建议都会很棒!
更新:它正在使用真实帐户,但不适用于沙盒帐户-_-