0

我正在使用移动 SDK 的 PayPal 付款验证。

这是从沙箱返回的数据转储。

["proof_of_payment"]=>
object(stdClass)#27 (1) {
["adaptive_payment"]=>
object(stdClass)#28 (4) {
  ["app_id"]=>
  string(14) "APP-1234567890"
  ["payment_exec_status"]=>
  string(9) "COMPLETED"
  ["pay_key"]=>
  string(20) "AP-70M68096ML426802W"
  ["timestamp"]=>
  string(20) "2013-07-23T12:10:17Z"

所以有一个“proof_of_payment”对象,其中有一个名为“adaptive_payment”的对象。Paypal 表示,由于他们接受两种类型的付款(信用卡或贝宝账户),因此 proof_of_payment 中的对象可以是两件事之一。“adaptive_payment”或“rest_api”。

使用 PHP,您将如何测试“adaptive_payment”空间中写入的内容?这不是您通常的 key->value 情况,因为它本身就是一个对象的名称。显然数组语法在这里不起作用,因为它不是数组,我也不能做 proof_of_payment[0]。那么测试的正确方法是什么?

谢谢!

4

1 回答 1

0

只需检查哪个键存在isset()

if (isset($obj->adaptive_payment)) {
  // adaptive payment code...
}
else if (isset($obj->rest_api)) {
  // rest api code...
}

或者,您可以使用property_exists(). 但是在您的情况下,isset()就足够了,因为密钥将被设置或不被设置。

于 2013-07-23T14:57:38.800 回答