【问题标题】:How to test declination of Amazon Payments authorization?如何测试亚马逊支付授权的拒绝?
【发布时间】:2015-06-29 21:54:54
【问题描述】:

在 Amazon Payments 上授权订单时,如果客户必须登录 Amazon Payments 并更改付款方式,授权状态可能会以 InvalidPaymentMethod 为原因返回 Declined

如何强制亚马逊重现这个InvalidPaymentMethod案例进行测试?

【问题讨论】:

  • 我认为您将不得不为您的问题添加更多细节,也许包括一些您需要所述功能的代码?
  • 请为此与 Amazon Payments 联系并与他们一起解决。在 PCI 合规性等方面存在某些属性,它们可能会发送数据,也可能不会
  • 对不起,我已经找到答案了
  • 请保持问题简单,并尝试以第三人称写作以专注于问题。将其放入上下文和问题中可能会有所帮助。

标签: php testing amazon-pay


【解决方案1】:

哦,RTM...我在Integration Guide 中找到了答案。当您拨打 Authorize 电话时,您必须指定 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
        ]])
    ]);
}

【讨论】:

    猜你喜欢
    • 2020-05-28
    • 2020-03-23
    • 2021-12-13
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    相关资源
    最近更新 更多