2结账退款问题

2Checkout Refund Issue

使用 2Checkout's supported library for PHP,我无法通过他们的 API 使用他们提供的示例和我自己的凭据在他们的沙箱中进行退款。我究竟做错了什么?请注意,我可以在他们的沙盒中正常收费,但不能退款。

<?php

error_reporting(E_ALL);
ini_set('display_errors','On');
header('Content-Type: text/plain');

require_once('lib/Twocheckout.php');

$sChargeID = '4093729353592'; // my order ID
Twocheckout::username('USER'); // my username
Twocheckout::password('PASSWORD'); // my password
Twocheckout::sandbox(true);

Twocheckout::verifySSL(false);

$charge = Twocheckout_Sale::refund(array(
    'sale_id' => $sChargeID,
    'comment' => 'Customer decided the item did not meet expectations and it was within their refund period.',
    'category' => 2 // did not like item
));

echo "\nRESPONSE = \n";
print_r($charge);
echo "\n";

当我转出 CURL 响应时,我看到了这个:

{
   "errors" : [
      {
         "code" : "FORBIDDEN",
         "message" : "Access denied to API"
      }
   ]
}

关于 API 退款,他们在 2Checkout 中没有说清楚一些事情:

  1. 他们在沙盒上的密码重置电子邮件服务不起作用。我从他们的技术支持那里得到了关于这个的答复。

  2. 您必须进入 Sandbox(Live 除外)仪表板,然后单击“帐户”>“用户管理”。您会看到一个小字条,上面写着:“** 用户不能同时访问 API 和卖家区域”。您还会注意到您自己的帐户没有 API 访问权限和 API 更新权限。这意味着您必须从该用户管理屏幕创建另一个帐户,当您这样做时,请选中 Admin API 和 API 更新功能。然后,使用该用户名和密码,但使用与您的其他帐户相同的帐户 ID。请注意,这个新用户可以通过 API 进行退款,但无法登录仪表板。

请注意,费用不使用 "admin API"——它们使用单​​独的 API,该 API 使用 API 键而不是 user/pass 组合键。我可以对一个 API 使用 API 键,但对另一个 user/pass 必须使用受限的 user/pass 组合,这毫无意义。

正是这些问题使得 2Checkout 不如 Stripe 有吸引力,但是,嘿,很少有服务像 Stripe 一样具有快速入职和基于令牌的支付。 2结帐是我的 "second best choice".