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 は、2 種類の支払い (クレジット カードまたは Paypal アカウント) を受け入れるため、proof_of_payment 内のオブジェクトは 2 つのいずれかであると述べています。「adaptive_payment」または「rest_api」。

PHP では、「adaptive_payment」のスペースに書かれていることをどのようにテストしますか? これは、それ自体がオブジェクトの名前であるため、通常のキー -> 値のケースではありません。これは配列ではないため、明らかに配列構文はここでは機能しません。また、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 に答える