代码之家  ›  专栏  ›  技术社区  ›  Cesar Bielich

很难从createCustomer对象中检索customer\u id getId()以传递给createCustomerCard

  •  0
  • Cesar Bielich  · 技术社区  · 8 年前

    这是我的代码,这是我从中使用的示例 here

    $createcustomer_api = new \SquareConnect\Api\CustomersApi();
    $createcustomer_result = $createcustomer_api->createCustomer(array(
      'given_name' => 'Amelia',
      'family_name' => 'Earhart',
      'email_address' => 'Amelia.Earhart@example.com',
      'address' => array(
        'address_line_1' => '500 Electric Ave',
        'address_line_2' => 'Suite 600',
        'locality' => 'New York',
        'administrative_district_level_1' => 'NY',
        'postal_code' => '10003',
        'country' => 'US'
      ),
      'phone_number' => '1-555-555-0122',
      'reference_id' => 'YOUR_REFERENCE_ID',
      'note' => 'a customer'
    ));
    

    SquareConnect\Model\CreateCustomerResponse Object
    (
        [errors:protected] => 
        [customer:protected] => SquareConnect\Model\Customer Object
            (
                [id:protected] => CBASEHtp6YVU8AirkMv1lrVMyoIgAQ
                [created_at:protected] => 2017-09-27T23:19:44.62Z
                [updated_at:protected] => 2017-09-27T23:19:44.62Z
                [cards:protected] => 
                [given_name:protected] => Amelia
                [family_name:protected] => Earhart
                [nickname:protected] => 
                [company_name:protected] => 
                [email_address:protected] => Amelia.Earhart@example.com
                [address:protected] => SquareConnect\Model\Address Object
                    (
                        [address_line_1:protected] => 500 Electric Ave
                        [address_line_2:protected] => Suite 600
                        [address_line_3:protected] => 
                        [locality:protected] => New York
                        [sublocality:protected] => 
                        [sublocality_2:protected] => 
                        [sublocality_3:protected] => 
                        [administrative_district_level_1:protected] => NY
                        [administrative_district_level_2:protected] => 
                        [administrative_district_level_3:protected] => 
                        [postal_code:protected] => 10003
                        [country:protected] => US
                        [first_name:protected] => 
                        [last_name:protected] => 
                        [organization:protected] => 
                    )
    
                [phone_number:protected] => 1-555-555-0122
                [reference_id:protected] => YOUR_REFERENCE_ID
                [note:protected] => a customer
                [preferences:protected] => SquareConnect\Model\CustomerPreferences Object
                    (
                        [email_unsubscribed:protected] => 
                    )
    
                [groups:protected] => 
            )
    
    )
    

    现在,我需要创建客户卡,以便与客户关联,以便将来进行定期付款。

    $createcard_api = new \SquareConnect\Api\CustomersApi();
    $createcard_result = $createcard_api->createCustomerCard($createcustomer_result->getId(), array(
      'card_nonce' => $nonce,
      'billing_address' => array(
        'address_line_1' => '1455 Market St',
        'address_line_2' => 'Suite 600',
        'locality' => 'San Francisco',
        'administrative_district_level_1' => 'CA',
        'postal_code' => '94103',
        'country' => 'US'
      ),
      'cardholder_name' => 'Amelia Earhart'
    ));
    

    据我所知,square SDK有一个内置函数 getId() this 被称为like $customer->getId() ,但根据 this ->getId() 给我的 createCustomer 对象

    所以我试着打电话给 getId()

    $createcustomer_result->getId()
    

    但在我的代码中,我得到了错误

    Fatal error: Call to undefined method SquareConnect\Model\CreateCustomerResponse::getId()
    

    如何正确地从 创建客户 ?

    1 回复  |  直到 8 年前
        1
  •  2
  •   DjB    8 年前

    您只能从API(一种通信设备)获得响应对象。您需要首先从响应中提取创建的对象,然后可以查询它的ID。

    $customer = $createcustomer_result->getCustomer();
    

    这应该可以得到实际的客户对象,然后您可以:

    $customer_id = $customer->getId();
    

    推荐文章