首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用MercadoPago和信用卡付款时出现错误

尝试使用MercadoPago和信用卡付款时出现错误
EN

Stack Overflow用户
提问于 2015-08-26 01:48:07
回答 1查看 872关注 0票数 2

我正在使用以下代码来处理使用MercadoPago和信用卡的付款:

代码语言:javascript
复制
$mp = new MP($access_token);

$payment = array();
$payment["transaction_amount"] = 100.00;
$payment["token"] = $token;

$result = $mp->post("/v1/payments", $payment);

echo "<pre>";
print_r($result);
echo "</pre>";

我已经有了信用卡令牌,但仍然收到这个错误:

代码语言:javascript
复制
Fatal error: Uncaught exception 'Exception' with message 'Params Error - 1: Params Error'

任何帮助都将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-04-23 12:21:25

这是一个非常古老的帖子,但它可以帮助某人……

尝试捕获异常,以便可以更轻松地处理和调试它。

我能够捕捉到它,并补充道:

代码语言:javascript
复制
  // import
  use \MP;
  use \MercadoPagoException;

  // try payment
  try {
      $payment = $this->mp->post("/v1/payments", $this->paymentData);        
  }
  catch (MercadoPagoException $e) {

      $paymentError = new \stdClass();
      $paymentError->parsed = $this->parseException($e->getMessage());
      $paymentError->data = $e->getMessage();
      $paymentError->code = $e->getCode();
  }

  // parse the excepetion "message" to get the code and detail, if exists
  private function parseException($message) {
     $error = new \stdClass();
     $error->code = 0;
     $error->detail = '';
     $posA = strpos($message, '-');
     $posB = strpos($message, ':');
     if($posA && $posB) {
        $posA+=2;
        $length = $posB - $posA;
        // get code
        $error->code = substr($message, $posA, $length);
        // get message
        $error->detail = substr($message, $posB+2);
    }
    return $error;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32210760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档