Frage

I am unable to get the shipping Addresses of my customers in the 'Transacton Details' page. It's displaying the following message.

'We have no shipping address on file'

The issue mainly happens when users use PaypalPro (Direct Payment) option.

Can anyone help me in this issue.

Note:

This is my code corresponding to the DoDirectPayment Request.

class ProAuthorizeRequest extends AbstractRequest { protected $action = 'Authorization';

public function getData()
{
    $data = $this->getBaseData('DoDirectPayment');

    $this->validate('amount', 'card');
    $this->getCard()->validate();

    $data['PAYMENTACTION'] = $this->action;
    $data['AMT'] = $this->getAmount();
    $data['CURRENCYCODE'] = $this->getCurrency();
    $data['INVNUM'] = $this->getTransactionId();
    $data['DESC'] = $this->getDescription();

    // add credit card details
    $data['ACCT'] = $this->getCard()->getNumber();
    $data['CREDITCARDTYPE'] = $this->getCard()->getBrand();
    $data['EXPDATE'] = $this->getCard()->getExpiryMonth().$this->getCard()->getExpiryYear();
    $data['STARTDATE'] = $this->getCard()->getStartMonth().$this->getCard()->getStartYear();
    $data['CVV2'] = $this->getCard()->getCvv();
    $data['ISSUENUMBER'] = $this->getCard()->getIssueNumber();
    $data['IPADDRESS'] = $this->getClientIp();
    $data['FIRSTNAME'] = $this->getCard()->getFirstName();
    $data['LASTNAME'] = $this->getCard()->getLastName();
    $data['EMAIL'] = $this->getCard()->getEmail();
    $data['STREET'] = $this->getCard()->getAddress1();
    $data['STREET2'] = $this->getCard()->getAddress2();
    $data['CITY'] = $this->getCard()->getCity();
    $data['STATE'] = $this->getCard()->getState();
    $data['ZIP'] = $this->getCard()->getPostcode();
    $data['COUNTRYCODE'] = strtoupper($this->getCard()->getCountry());

    return $data;
}

}

War es hilfreich?

Lösung

For DoDirectPayment you need to also include the SHIPTO variables:

public function getData()
{
    $data = $this->getBaseData('DoDirectPayment');

    $this->validate('amount', 'card');
    $this->getCard()->validate();

    $data['PAYMENTACTION'] = $this->action;
    $data['AMT'] = $this->getAmount();
    $data['CURRENCYCODE'] = $this->getCurrency();
    $data['INVNUM'] = $this->getTransactionId();
    $data['DESC'] = $this->getDescription();

    // add credit card details
    $data['ACCT'] = $this->getCard()->getNumber();
    $data['CREDITCARDTYPE'] = $this->getCard()->getBrand();
    $data['EXPDATE'] = $this->getCard()->getExpiryMonth().$this->getCard()->getExpiryYear();
    $data['STARTDATE'] = $this->getCard()->getStartMonth().$this->getCard()->getStartYear();
    $data['CVV2'] = $this->getCard()->getCvv();
    $data['ISSUENUMBER'] = $this->getCard()->getIssueNumber();
    $data['IPADDRESS'] = $this->getClientIp();
    $data['FIRSTNAME'] = $this->getCard()->getFirstName();
    $data['LASTNAME'] = $this->getCard()->getLastName();
    $data['EMAIL'] = $this->getCard()->getEmail();
    $data['STREET'] = $this->getCard()->getAddress1();
    $data['STREET2'] = $this->getCard()->getAddress2();
    $data['CITY'] = $this->getCard()->getCity();
    $data['STATE'] = $this->getCard()->getState();
    $data['ZIP'] = $this->getCard()->getPostcode();
    $data['COUNTRYCODE'] = strtoupper($this->getCard()->getCountry());
    //shipping information as you want displayed on transaction details. name is a single field.
    $data['SHIPTONAME'] = $this->getCard()->getFirstName() . " " . $this->getCard()->getLastName();
    $data['SHIPTOSTREET'] = $this->getCard()->getAddress1();
    $data['SHIPTOSTREET2'] = $this->getCard()->getAddress2();
    $data['SHIPTOCITY'] = $this->getCard()->getCity();
    $data['SHIPTOSTATE'] = $this->getCard()->getState();
    $data['SHIPTOZIP'] = $this->getCard()->getPostcode();
    $data['SHIPTOCOUNTRYCODE'] = strtoupper($this->getCard()->getCountry());

    return $data;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top