创建订单后如何检索客户电子邮件-Laravel&Shopify

时间:2018-11-06 22:38:00

标签: php laravel shopify

创建订单时,我的网络挂钩将响应返回给控制器,以下是我如何检索订单详细信息

控制器

networks:
  biodati:
    external: true

services:

  pipeline:
    container_name: pipeline
    image: biodati/bel_pipeline:dev
    networks:
      biodati:

  traefik:
    image: traefik:1.7
    container_name: traefik
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./conf/traefik.toml:/traefik.toml
      - ./logs:/logs
    networks:
      biodati:
    labels:
      - traefik.enable=true
      - traefik.backend=traefik
      - traefik.frontend.rule=Host:traefik.${BS_HOST_NAME:?err}
      - traefik.port=8080
      - traefik.docker.network=biodati

  # BEL API - core requirement
  belapi:
    container_name: belapi
    image: belbio/bel_api:localdev
    networks:
      biodati:
    labels:
      - traefik.enable=true
      - traefik.backend=belapi
      - traefik.frontend.rule=Host:belapi.${BS_HOST_NAME:?err};
      - traefik.port=8000
      - traefik.docker.network=biodati

如同在我的控制器中一样,我能够检索public function getOrderDetails() { // get the content of request body $order = $request->getContent(); $order = json_decode($order, true); $order_id = $order['number']; $order_total = $order['total_price']; $customer_email = $order['customer.email']; } ,但无法获得下订单的客户的电子邮件。

我的代码有什么问题?

这是来自Shopify的响应

回复

order_id, order_total

2 个答案:

答案 0 :(得分:3)

您可以使用:

$customer_email = $order['customer']['email'];

答案 1 :(得分:0)

1)您的json数据有错误。您应在}

之前删除逗号(,)。

2)下面的代码正常工作

$order='{
    "id": 820982911946154508,
    "email": "jon@doe.ca",
    "closed_at": null,
    "created_at": "2018-10-26T13:55:26-04:00",
    "updated_at": "2018-10-26T13:55:26-04:00",
    "number": 234,
    "note": null,
    "customer": {
        "id": 115310627314723954,
        "email": "john@test.com",
        "accepts_marketing": false,
        "created_at": null
    }
}';

// get the content of request body
$order = json_decode($order, true);
$order_id = $order['number'];
$order_total = $order['total_price'];

$customer_email = $order['customer']['email'];
echo $customer_email;