3

使用2Checkout 支持的 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"
      }
   ]
}
4

1 回答 1

3

关于 API 退款,他们对 2Checkout 有一些不太清楚的地方:

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

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

请注意,收费不使用“管理 API”——它们使用单​​独的 API,该 API 使用 API 密钥而不是用户/通行证组合。我可以将 API 密钥用于一个 API,但必须对另一个 API 使用受限用户/通行证组合,这是零意义的。

正是这些因素让 2Checkout 的吸引力不如 Stripe,但嘿,很少有服务像 Stripe 那样具有快速入门和基于代币的支付功能。2Checkout 是我的“第二好的选择”。

于 2016-05-02T20:38:58.560 回答