我正在为移动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_payment"对象,其中有一个名为"adaptive_payment"的对象。贝宝表示,由于他们接受两种类型的支付(信用卡或贝宝账户),因此支付凭证中的对象可以是两种情况之一。"adaptive_payment"或"rest_api"。
使用PHP,您将如何测试"adaptive_payment"空间中所写的内容?这不是通常的key->value情况,因为它是一个对象本身的名称。显然,数组语法在这里不起作用,因为它不是数组,我也不能做proof_of_payment[0]。那么,测试的正确方法是什么呢?
谢谢!
只需检查isset()
:中存在哪个密钥
if (isset($obj->adaptive_payment)) {
// adaptive payment code...
}
else if (isset($obj->rest_api)) {
// rest api code...
}
或者,您可以使用property_exists()
。但在您的情况下,isset()
就足够了,因为密钥要么会被设置,要么不会被设置。