2015-04-22 3 views
3

При авторизации заказа на Amazon Payments статус авторизации может быть возвращен как Declined с InvalidPaymentMethod в качестве причины, если клиент должен войти в систему Amazon Payments и изменить способ оплаты.Как проверить отклонение разрешения Amazon Payments?

Как заставить Amazon воспроизвести этот InvalidPaymentMethod чехол для тестирования?

+0

Я думаю, тебе придется добавить немного больше деталей на ваш вопрос, возможно, включают в себя некоторый код, где вы должны указанная функция? – Epodax

+0

Просьба связаться с Amazon Payments для этого и разобраться с ними. Есть определенные атрибуты в соответствии с PCI и т. Д., Для которых они могут отправлять данные, или могут не –

+0

Извините, я уже нашел ответ –

ответ

4

О, RTM ... Я нашел ответ в Integration Guide. Когда вы делаете вызов Авторизовать, вы должны указать SellerAuthorizationNote:

{"SandboxSimulation": { 
    "State":"Declined", 
    "ReasonCode":"InvalidPaymentMethod", 
    "PaymentMethodUpdateTimeInMins":5}} 

Оставив вопрос здесь для разработчиков, интегрирующих этот способ оплаты.

Это то, что последний метод выглядит следующим образом:

/** 
* @param string $orderReferenceId 
* @param string $authorizationReferenceId 
* @param float $amount 
* @param string $currencyCode 
* @return \OffAmazonPaymentsService_Model_AuthorizeResponse 
*/ 
private function authorizeOrder($orderReferenceId, $authorizationReferenceId, $amount, $currencyCode) 
{ 
    return $this->getClient()->authorize([ 
     'SellerId'     => $this->serviceCrendentials['merchantId'], 
     'AmazonOrderReferenceId' => $orderReferenceId, 
     'AuthorizationReferenceId' => $authorizationReferenceId, 
     'AuthorizationAmount'  => [ 
      'Amount'    => $amount, 
      'CurrencyCode'   => $currencyCode 
     ], 
     // Delete it, it's just for sandbox testing 
     'SellerAuthorizationNote' => json_encode(['SandboxSimulation' => [ 
      'State'       => 'Declined', 
      'ReasonCode'     => 'InvalidPaymentMethod', 
      'PaymentMethodUpdateTimeInMins' => 5 
     ]]) 
    ]); 
}