2

Paypal の従来の API を使用して直接支払いを行っています。コードは次のとおりです。

        require('merchant-sdk-php-master/samples/PPBootStrap.php');

        $logger = new PPLoggingManager('DoDirectPayment');

        $address = new AddressType();
        $address->Name = $full_name;
        $address->Street1 = $address_1;
        $address->Street2 = $address_2;
        $address->CityName = $city;
        $address->StateOrProvince = $province;
        $address->PostalCode = $postal_code;
        $address->Country = $country;
        $address->Phone = $phone;

        $paymentDetails = new PaymentDetailsType();
        $paymentDetails->ShipToAddress = $address;
        $paymentDetails->OrderTotal = new BasicAmountType('CAD', $amount);

        $personName = new PersonNameType();
        $personName->FirstName = $first_name;
        $personName->LastName = $last_name;

        $payer = new PayerInfoType();
        $payer->PayerName = $personName;
        $payer->Address = $address;
        $payer->PayerCountry = $country;

        $cardDetails = new CreditCardDetailsType();
        $cardDetails->CreditCardNumber = $card_number;
        $cardDetails->CreditCardType = $card_type;
        $cardDetails->ExpMonth = $expiry_month;
        $cardDetails->ExpYear = $expiry_year;
        $cardDetails->CVV2 = $cvv;
        $cardDetails->CardOwner = $payer;

        $ddReqDetails = new DoDirectPaymentRequestDetailsType();
        $ddReqDetails->CreditCard = $cardDetails;
        $ddReqDetails->PaymentDetails = $paymentDetails;
        $ddReqDetails->PaymentAction = 'Sale';
        $ddReqDetails->IPAddress = $ip_address;
        $ddReqDetails->ReturnFMFDetails = true;

        $doDirectPaymentReq = new DoDirectPaymentReq();
        $doDirectPaymentReq->DoDirectPaymentRequest = new DoDirectPaymentRequestType($ddReqDetails);

        $logger->info("created doDirectPaymentReq Object");

        $paypalService = new PayPalAPIInterfaceServiceService();

        try{
            $doDirectPaymentResponse = $paypalService->DoDirectPayment($doDirectPaymentReq);
            var_dump($doDirectPaymentResponse);
        } 
        catch (Exception $ex){
            var_dump($ex);
        }

返されるオブジェクトは次のとおりです。

object(DoDirectPaymentResponseType)#84 (15) { ["Amount"]=> NULL ["AVSCode"]=> NULL ["CVV2Code"]=> NULL ["TransactionID"]=> NULL ["PendingReason"]=> NULL ["PaymentStatus"]=> NULL ["FMFDetails"]=> NULL ["ThreeDSecureResponse"]=> NULL ["PaymentAdviceCode"]=> NULL ["Timestamp"]=> NULL ["Ack"]=> NULL ["CorrelationID"]=> NULL ["Errors"]=> NULL ["Version"]=> NULL ["Build"]=> NULL } ­

私はカナダ人なので、新しい API はここではまだ利用できないため、使用できません。私は従来の API にこだわっています。この結果が得られるのはなぜですか?

どんな助けでも大歓迎です!

4

1 に答える 1

0

何らかの理由で、昨日、NULL 値のオブジェクトを取得していました。しかし、今日、エラーメッセージが表示されます。エラーを修正し、成功しました。

昨日ではなく、今日エラーメッセージが表示された理由はわかりません。私はコードを一切変更していないので、Paypal 側で何か変更されたに違いありません。

何が間違っていたのかはまだわかりませんが、それだけです。

于 2013-03-13T16:17:10.700 に答える