2015-10-13 7 views
2

J'essaie de créer des abonnements récurrents Authorize.net en utilisant PHP. J'ai installé Composer, puis j'ai utilisé composer.json comme indiqué ici https://github.com/AuthorizeNet/sample-code-php/blob/master/composer.json pour installer le SDK Authorize.net. Maintenant j'essaye de créer un abonnement sur mon compte de bac à sable en utilisant le code trouvé ici: https://github.com/AuthorizeNet/sample-code-php/blob/master/RecurringBilling/create-subscription.php.Authorize.net ARB certificat SSL problème

Lorsque je tente de lancer cela, il me donne l'erreur suivante:

Fatal error: Uncaught exception 'Exception' with message 'Error getting valid response from api. Check log file for error details' in /home/tpmadmin/public_html/vendor/authorizenet/authorizenet/lib/net/authorize/api/controller/base/ApiOperationBase.php:122 Stack trace: #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} thrown in /home/tpmadmin/public_html/vendor/authorizenet/authorizenet/lib/net/authorize/api/controller/base/ApiOperationBase.php on line 122

J'ai vérifié le journal des erreurs et il me montrant:

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` 

Note: dans le message ci-dessus J'ai remplacé mes API_LOGIN_ID et TRANSACTION_KEY. Le vrai message a les informations de connexion correctes. Je ne connais pas beaucoup les certificats SSL ou ce qui pourrait être à l'origine de cette situation. J'ai cherché des heures sur Google sans succès. Toute aide ou conseil serait génial!

MISE À JOUR: Il travaille sur le compte en direct, mais pas sur le compte Sandbox -_-

Répondre

0

J'ai eu un problème similaire, mais je ne vouloir autoriser. Donc, pour ma situation avec les demandes authentiques SANDBOX, j'ai modifié HttpClient pour inclure curl_setopt ($ curl_request, CURLOPT_SSL_VERIFYPEER, false);

Si je devais faire plus de demandes authOnly, je serais probablement utiliser une autre API AUTORISER (CIM via SOAP, par exemple)

Un de mes pairs estime que PROD ne donnera pas la question et shouldn » t require curl_setopt ($ curl_request, CURLOPT_SSL_VERIFYPEER, false) mais je ne l'ai pas testé complètement.

+0

J'ai essayé cette solution sans succès, merci pour la réponse – hunijkah