2017-08-30 5 views
1

Hintergrund:Authorize.net Accept Hosted & Kundenprofile

ich meine erste Authorize.net Accept Hosted Lösung. Der Plan besteht darin, den benutzerdefinierten PHP-Warenkorb des Händlers zu verwenden, um den Versand, die Rechnungsadresse und dann das gehostete Formular zu sammeln, um die Zahlung einzuziehen. Viele der Kunden werden "Gast" -Kunden sein, ohne dass Kundenprofile im PHP-Einkaufswagen generiert werden.

Ich habe erfolgreich eine XML-Token-Anfrage mit CURL erstellt und das Rückgabetoken verwendet, um das Zahlungsformular anzufordern und einen IFrame zu füllen.

Das Problem:

Wir möchten die Abrechnung/Versand Info in den Warenkorb auf den Auth.net eingegeben übergeben, damit der Kunde die Informationen nicht erneut eingeben muss. Die Dokumentation/Beispiele, die ich finden konnte, erfordern die Verwendung des SDK, um ein Kundenprofil zu erstellen, um dies zu tun.

Gibt es einen einfacheren Weg?

Meine Fragen:

  1. Können wir den Versand/Fakturierung in der Token-Anfrage übergeben?
  2. Können wir den Versand/Rechnungsstellung in der Formularanforderung übergeben?
  3. Weitere Vorschläge zum Übergeben dieser Fakturierungs-/Versandinformationen ohne Erstellen einer separaten Kundenprofiltransaktion?
  4. Wenn wir für jede Transaktion ein Kundenprofil erstellen müssen, können wir ein Kundenprofil mit XML/CURL erstellen, ohne das gesamte SDK zu integrieren?

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

0

Ja, können Sie die Rechnungs- und Lieferadresse Infomationen zu dem Token reques geben, die dann in Form vorausgefüllt werden:

<getHostedPaymentPageRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> 
    <merchantAuthentication> 
     <name>YOUR_LOGIN_ID</name> 
     <transactionKey>YOUR_TRANSACTION_KEY</transactionKey> 
    </merchantAuthentication> 
    <transactionRequest> 
     <transactionType>authCaptureTransaction</transactionType> 
     <amount>20.00</amount> 
     <billTo> 
     <firstName>Ellen</firstName> 
     <lastName>Johnson</lastName> 
     <company>Souveniropolis</company> 
     <address>14 Main Street</address> 
     <city>Pecan Springs</city> 
     <state>TX</state> 
     <zip>44628</zip> 
     <country>USA</country> 
     </billTo> 
     <shipTo> 
     <firstName>China</firstName> 
     <lastName>Bayles</lastName> 
     <company>Thyme for Tea</company> 
     <address>12 Main Street</address> 
     <city>Pecan Springs</city> 
     <state>TX</state> 
     <zip>44628</zip> 
     <country>USA</country> 
     </shipTo> 
    </transactionRequest> 
    <hostedPaymentSettings> 
     <setting> 
     <settingName>hostedPaymentBillingAddressOptions</settingName> 
     <settingValue>{"show": true, "required":true}</settingValue> 
     </setting> 
     <setting> 
     <settingName>hostedPaymentButtonOptions</settingName> 
     <settingValue>{"text": "Pay"}</settingValue> 
     </setting> 
     <setting> 
     <settingName>hostedPaymentReturnOptions</settingName> 
     <settingValue>{"url":"https://www.mystore.com/good","urlText":"Continue","cancelUrl":"https://www.mystore.com/cancel","cancelUrlText":"Cancel"}</settingValue> 
     </setting> 
     <setting> 
     <settingName>hostedPaymentShippingAddressOptions</settingName> 
     <settingValue>{"show": true, "required":true}</settingValue> 
     </setting> 
    </hostedPaymentSettings> 
</getHostedPaymentPageRequest> 

Ja, Sie können auch ein Kundenprofil erstellen mit Hilfe von XML/CURL ohne das gesamte SDK aufzunehmen.

+0

Das Problem, das ich mit dieser Methode gefunden habe, ist, dass der Kunde dann die Adresse ändern kann, sobald es im Auszahlungsformular bereits ausgefüllt ist. Ich berechne Umsatzsteuer basierend auf der Lieferadresse, und es verursacht Probleme, wenn sich die Adresse ändert, nachdem die Steuer bereits angewendet wurde. Es scheint keine Möglichkeit zu geben, die Adresse zu übergeben, ohne sie im Bezahlformular zur Bearbeitung verfügbar zu machen. Siehe [diesen Beitrag] (https://community.developer.authorize.net/t5/Integration-and-Testing/Accept-Hosted-and-Sales-Tax-calculation/td-p/59525). – showdev