dtc88867
dtc88867
2014-04-30 19:11

送货地址未显示在Paypal交易详细信息页面中

已采纳

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;
}

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • dongyong5255 dongyong5255 7年前

    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;
    }
    
    点赞 评论 复制链接分享

相关推荐