php - 如何从 PayPal SDK 访问交易数据?

标签 php arrays paypal

我正在使用 PayPal SDK,当我完成交易时,它会返回:

object(PayPal\Api\Payment)#8 (1) {
  ["_propMap":"PayPal\Common\PPModel":private]=>
  array(8) {
    ["id"]=>
    string(28) "PAY-66N6061121216644JKKS6LVQ"
    ["create_time"]=>
    string(20) "2013-12-09T15:46:30Z"
    ["update_time"]=>
    string(20) "2013-12-09T15:53:32Z"
    ["state"]=>
    string(8) "approved"
    ["intent"]=>
    string(4) "sale"
    ["payer"]=>
    object(PayPal\Api\Payer)#33 (1) {
      ["_propMap":"PayPal\Common\PPModel":private]=>
      array(2) {
        ["payment_method"]=>
        string(6) "paypal"
        ["payer_info"]=>
        object(PayPal\Api\PayerInfo)#30 (1) {
          ["_propMap":"PayPal\Common\PPModel":private]=>
          array(5) {
            ["email"]=>
            string(19) "indi3.rok@gmail.com"
            ["first_name"]=>
            string(7) "Cliente"
            ["last_name"]=>
            string(6) "Orozco"
            ["payer_id"]=>
            string(13) "U8C2RMNA4SP9E"
            ["shipping_address"]=>
            object(PayPal\Api\Address)#31 (1) {
              ["_propMap":"PayPal\Common\PPModel":private]=>
              array(5) {
                ["line1"]=>
                string(9) "1 Main St"
                ["city"]=>
                string(8) "San Jose"
                ["state"]=>
                string(2) "CA"
                ["postal_code"]=>
                string(5) "95131"
                ["country_code"]=>
                string(2) "US"
              }
            }
          }
        }
      }
    }
    ["transactions"]=>
    array(1) {
      [0]=>
      object(PayPal\Api\Transaction)#34 (1) {
        ["_propMap":"PayPal\Common\PPModel":private]=>
        array(4) {
          ["amount"]=>
          object(PayPal\Api\Amount)#35 (1) {
            ["_propMap":"PayPal\Common\PPModel":private]=>
            array(3) {
              ["total"]=>
              string(6) "100.00"
              ["currency"]=>
              string(3) "USD"
              ["details"]=>
              object(PayPal\Api\Details)#36 (1) {
                ["_propMap":"PayPal\Common\PPModel":private]=>
                array(1) {
                  ["subtotal"]=>
                  string(6) "100.00"
                }
              }
            }
          }
          ["description"]=>
          string(14) "Lo que pagaras"
          ["item_list"]=>
          object(PayPal\Api\ItemList)#37 (1) {
            ["_propMap":"PayPal\Common\PPModel":private]=>
            array(1) {
              ["items"]=>
              array(1) {
                [0]=>
                object(PayPal\Api\Item)#38 (1) {
                  ["_propMap":"PayPal\Common\PPModel":private]=>
                  array(4) {
                    ["name"]=>
                    string(23) "video: federer en paris"
                    ["price"]=>
                    string(6) "100.00"
                    ["currency"]=>
                    string(3) "USD"
                    ["quantity"]=>
                    string(1) "1"
                  }
                }
              }
            }
          }
          ["related_resources"]=>
          array(1) {
            [0]=>
            object(PayPal\Api\RelatedResources)#40 (1) {
              ["_propMap":"PayPal\Common\PPModel":private]=>
              array(1) {
                ["sale"]=>
                object(PayPal\Api\Sale)#42 (1) {
                  ["_propMap":"PayPal\Common\PPModel":private]=>
                  array(7) {
                    ["id"]=>
                    string(17) "2ES44750XJ1684301"
                    ["create_time"]=>
                    string(20) "2013-12-09T15:46:30Z"
                    ["update_time"]=>
                    string(20) "2013-12-09T15:53:32Z"
                    ["state"]=>
                    string(9) "completed"
                    ["amount"]=>
                    object(PayPal\Api\Amount)#44 (1) {
                      ["_propMap":"PayPal\Common\PPModel":private]=>
                      array(2) {
                        ["total"]=>
                        string(6) "100.00"
                        ["currency"]=>
                        string(3) "USD"
                      }
                    }
                    ["parent_payment"]=>
                    string(28) "PAY-66N6061121216644JKKS6LVQ"
                    ["links"]=>
                    array(3) {
                      [0]=>
                      object(PayPal\Api\Links)#46 (1) {
                        ["_propMap":"PayPal\Common\PPModel":private]=>
                        array(3) {
                          ["href"]=>
                          string(65) "https://api.sandbox.paypal.com/v1/payments/sale/2ES44750XJ1684301"
                          ["rel"]=>
                          string(4) "self"
                          ["method"]=>
                          string(3) "GET"
                        }
                      }
                      [1]=>
                      object(PayPal\Api\Links)#47 (1) {
                        ["_propMap":"PayPal\Common\PPModel":private]=>
                        array(3) {
                          ["href"]=>
                          string(72) "https://api.sandbox.paypal.com/v1/payments/sale/2ES44750XJ1684301/refund"
                          ["rel"]=>
                          string(6) "refund"
                          ["method"]=>
                          string(4) "POST"
                        }
                      }
                      [2]=>
                      object(PayPal\Api\Links)#48 (1) {
                        ["_propMap":"PayPal\Common\PPModel":private]=>
                        array(3) {
                          ["href"]=>
                          string(79) "https://api.sandbox.paypal.com/v1/payments/payment/PAY-66N6061121216644JKKS6LVQ"
                          ["rel"]=>
                          string(14) "parent_payment"
                          ["method"]=>
                          string(3) "GET"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    ["links"]=>
    array(1) {
      [0]=>
      object(PayPal\Api\Links)#49 (1) {
        ["_propMap":"PayPal\Common\PPModel":private]=>
        array(3) {
          ["href"]=>
          string(79) "https://api.sandbox.paypal.com/v1/payments/payment/PAY-66N6061121216644JKKS6LVQ"
          ["rel"]=>
          string(4) "self"
          ["method"]=>
          string(3) "GET"
        }
      }
    }
  }
}

我不确定它是什么。 (我认为它是 JSON 但我不确定。)

我想做的是访问这种数组中的信息:

$transaction["payment"]

我该怎么做?

最佳答案

PayPal 返回一个使用其内部 fromJSON() 函数格式化的对象 - 在 OP 的情况下,它是从 Payment 类调用的:

$json = $call->execute(array('PayPal\Rest\RestHandler'), "/v1/payments/payment/{$this->getId()}/execute", "POST", $payLoad);
$ret = new Payment();
$ret->fromJson($json);
return $ret;

要将其用作 JSON 对象,您需要使用 toJSON() 函数:

$execution = new PaymentExecution();
$execution->setPayerId($_GET['PayerID']);
//Execute the payment
// (See bootstrap.php for more on `ApiContext`)
$result = $payment->execute($execution, $apiContext);
// use the result 
$jsonResult = $result->toJSON();

希望对您有所帮助。

关于php - 如何从 PayPal SDK 访问交易数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20475286/

相关文章:

php - 将 CSS、Javascript 和 PHP 文件添加到 Joomla 网站

javascript - 如何将多维传递给javascript并再次以多维形式存储?

php - 如何获取字符串中小数点前后的值

javascript - 无法将 JSON 值保存到 Javascript 数组?

paypal - 从 PayPal 下载交易记录

php - JSON - PHP 与 Javascript?

Javascript:尽管数组稀疏,但 indexOf 在高索引上还是很慢?

java - 无法弄清楚如何增加二维数组

javascript - 等待在 nextjs 页面加载 paypal 脚本

Paypal自适应支付报错58001