有赞的消息推送服务是通过POST、参数编码为APPLICATION/JSON(输入流)的方式向开发者提供的地址推送消息的,所以PHP只要用 php://input 方法即可接收推送数据并进行处理。
简单的demo如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php /** * 有赞推送服务消息接收示例 * Auther: Moyu * Date: 2016/11/15 * Time: 21:10 */ $AppID = "";//有赞店铺后台营销-有赞API的APPID,如果是三方服务商,这里是client_id $AppSecret = "";//有赞店铺后台营销-有赞API的AppSecret,如果是三方服务商,这里是client_secret $json = file_get_contents('php://input'); //接收推送数据 $data = json_decode($json, true); /** * 只要收到推送消息就立即返回成功消息 */ if ($data){ $result = array("code"=>0,"msg"=>"success") ; var_dump($result); } /** * 判断消息是否合法,校验失败直接终止 */ $msg = $data['msg']; $signString = $AppID."".$msg."".$AppSecret; $sign = md5($signString); if($sign != $data['sign']){ exit(); } /** * msg是经过unicode(UTF-8)编码的消息对象,所以要进行解码 */ $msg = json_decode(urldecode($msg),true); if($data['type'] == "TRADE"){ //处理交易消息 } if($data['type'] == "ITEM"){ //处理商品信息 } |
push的消息示例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "mode": 0, "msg": "%7B%22trade%22:%7B%22num%22:2,%22goods_kind%22:2,%22num_iid%22:%22293545836%22,%22price%22:%22818.00%22,%22pic_path%22:%22https://img.yzcdn.cn/upload_files/2016/08/10/FgrQmOizM8A08xysgUvetnedZsb8.jpg%22,%22pic_thumb_path%22:%22https://img.yzcdn.cn/upload_files/2016/08/10/FgrQmOizM8A08xysgUvetnedZsb8.jpg%3FimageView2/2/w/200/h/0/q/75/format/jpg%22,%22title%22:%22%E5%8A%A0%E5%BC%BA%E5%9E%8B%E7%BE%8A%E8%83%9A%E8%83%8E%E7%B4%A0%E5%86%BB%E5%B9%B2%E7%B2%892%E7%9B%92%EF%BC%885%E5%91%A8%E5%B9%B4%E7%BA%AA%E5%BF%B5%E7%89%88%EF%BC%89%22,%22type%22:%22FIXED%22,%22discount_fee%22:%220.00%22,%22status%22:%22WAIT_SELLER_SEND_GOODS%22,%22status_str%22:%22%E5%BE%85%E5%8F%91%E8%B4%A7%22,%22refund_state%22:%22NO_REFUND%22,%22shipping_type%22:%22express%22,%22post_fee%22:%220.00%22,%22total_fee%22:%22818.00%22,%22refunded_fee%22:%220.00%22,%22payment%22:%22818.00%22,%22created%22:%222016-08-18%2000:14:58%22,%22update_time%22:%222016-08-18%2000:15:08%22,%22pay_time%22:%222016-08-18%2000:15:08%22,%22pay_type%22:%22WEIXIN_DAIXIAO%22,%22consign_time%22:%22%22,%22sign_time%22:%22%22,%22buyer_area%22:%22%E6%B1%9F%E8%8B%8F%E7%9C%81%E9%95%87%E6%B1%9F%E5%B8%82%22,%22seller_flag%22:0,%22buyer_message%22:%22%22,%22orders%22:[%7B%22oid%22:18240980,%22outer_sku_id%22:%22%22,%22outer_item_id%22:%220016081001%22,%22title%22:%22%E5%8A%A0%E5%BC%BA%E5%9E%8B%E7%BE%8A%E8%83%9A%E8%83%8E%E7%B4%A0%E5%86%BB%E5%B9%B2%E7%B2%892%E7%9B%92%EF%BC%885%E5%91%A8%E5%B9%B4%E7%BA%AA%E5%BF%B5%E7%89%88%EF%BC%89%22,%22seller_nick%22:%22%E9%9D%93%E5%A6%86%E9%A2%91%E9%81%93%22,%22fenxiao_price%22:%220.00%22,%22fenxiao_payment%22:%220.00%22,%22price%22:%22818.00%22,%22total_fee%22:%22818.00%22,%22payment%22:%22818.00%22,%22discount_fee%22:%220.00%22,%22sku_id%22:0,%22sku_unique_code%22:%22%22,%22sku_properties_name%22:%22%22,%22pic_path%22:%22https://img.yzcdn.cn/upload_files/2016/08/10/FgrQmOizM8A08xysgUvetnedZsb8.jpg%22,%22pic_thumb_path%22:%22https://img.yzcdn.cn/upload_files/2016/08/10/FgrQmOizM8A08xysgUvetnedZsb8.jpg%3FimageView2/2/w/200/h/0/q/75/format/jpg%22,%22item_type%22:0,%22buyer_messages%22:[],%22order_promotion_details%22:[],%22state_str%22:%22%E5%BE%85%E5%8F%91%E8%B4%A7%22,%22allow_send%22:1,%22is_send%22:0,%22item_refund_state%22:%22%22,%22is_virtual%22:0,%22num_iid%22:%22293545836%22,%22num%22:%221%22%7D,%7B%22oid%22:18240981,%22outer_sku_id%22:%22%22,%22outer_item_id%22:%221116050301%22,%22title%22:%22%E5%8A%A0%E5%BC%BA%E5%9E%8B%E7%BE%8A%E8%83%9A%E8%83%8E%E7%B4%A0%E5%86%BB%E5%B9%B2%E7%B2%8912%E4%BB%B6%E5%A5%97%E7%9B%92%22,%22seller_nick%22:%22%E9%9D%93%E5%A6%86%E9%A2%91%E9%81%93%22,%22fenxiao_price%22:%220.00%22,%22fenxiao_payment%22:%220.00%22,%22price%22:%22700.00%22,%22total_fee%22:%22700.00%22,%22payment%22:%220.00%22,%22discount_fee%22:%220.00%22,%22sku_id%22:0,%22sku_unique_code%22:%22%22,%22sku_properties_name%22:%22%22,%22pic_path%22:%22https://img.yzcdn.cn/upload_files/2016/08/10/FmhOA0LhsW_tOXsSAUQ-gUeqvwRA.jpg%22,%22pic_thumb_path%22:%22https://img.yzcdn.cn/upload_files/2016/08/10/FmhOA0LhsW_tOXsSAUQ-gUeqvwRA.jpg%3FimageView2/2/w/200/h/0/q/75/format/jpg%22,%22item_type%22:0,%22buyer_messages%22:[],%22order_promotion_details%22:[],%22state_str%22:%22%E5%BE%85%E5%8F%91%E8%B4%A7%22,%22allow_send%22:1,%22is_send%22:0,%22item_refund_state%22:%22%22,%22is_virtual%22:0,%22num_iid%22:%22293233753%22,%22num%22:%221%22%7D],%22fetch_detail%22:null,%22coupon_details%22:[],%22promotion_details%22:[],%22adjust_fee%22:%7B%22change%22:%220.00%22,%22pay_change%22:%220.00%22,%22post_change%22:%220.00%22%7D,%22sub_trades%22:[],%22weixin_user_id%22:%220%22,%22button_list%22:[%7B%22tool_icon%22:%22http://imgqn.koudaitong.com/upload_files/2015/08/28/FpFY_MeJXzLCA3lwIV6br6qUbClv.png%22,%22tool_title%22:%22%E5%8F%91%E8%B4%A7%22,%22tool_value%22:%22%22,%22tool_type%22:%22goto_native:trade_send_goods%22,%22tool_parameter%22:%22%7B%7D%22,%22new_sign%22:%220%22,%22create_time%22:%22%22%7D,%7B%22tool_icon%22:%22http://imgqn.koudaitong.com/upload_files/2015/08/28/FpO1UIXyOEZO026tWIgUOm9uZnT2.png%22,%22tool_title%22:%22%E5%A4%87%E6%B3%A8%22,%22tool_value%22:%22%22,%22tool_type%22:%22goto_native:trade_memo%22,%22tool_parameter%22:%22%7B%7D%22,%22new_sign%22:%220%22,%22create_time%22:%22%22%7D],%22feedback_num%22:0,%22trade_memo%22:%22%22,%22fans_info%22:%7B%22fans_nickname%22:%22%E9%A3%8E%E7%81%B5%22,%22fans_id%22:%22323484938%22,%22buyer_id%22:%227772765%22,%22fans_type%22:%229%22%7D,%22buy_way_str%22:%22%22,%22pf_buy_way_str%22:%22%E8%BF%90%E8%B4%B9%E5%88%B0%E4%BB%98%22,%22send_num%22:0,%22user_id%22:%227772765%22,%22kind%22:2,%22relation_type%22:%22%22,%22relations%22:[],%22out_trade_no%22:[],%22group_no%22:%22%22,%22outer_user_id%22:0,%22shop_id%22:%220%22,%22points_price%22:0,%22buyer_nick%22:%22%E9%A3%8E%E7%81%B5%22,%22tid%22:%22E20160818001458060573844%22,%22buyer_type%22:%229%22,%22buyer_id%22:%22323484938%22,%22receiver_city%22:%22%E9%95%87%E6%B1%9F%E5%B8%82%22,%22receiver_district%22:%22%E5%85%B6%E5%AE%83%E5%8C%BA%22,%22receiver_name%22:%22%E5%8D%A2%E7%90%AA%22,%22receiver_state%22:%22%E6%B1%9F%E8%8B%8F%E7%9C%81%22,%22receiver_address%22:%22%E6%89%AC%E4%B8%AD%E5%B8%82%E4%B8%89%E8%8C%85%E9%95%87%E7%94%B0%E5%9B%AD%E5%B0%8F%E5%8C%BA88%E5%8F%B7%22,%22receiver_zip%22:%22212200%22,%22receiver_mobile%22:%2218888888888%22,%22feedback%22:0,%22outer_tid%22:%224000092001201608181596388907%22%7D%7D", "kdt_id": 172938, "test": false, "sign": "dd4f2be7d3ffa5f877aca36028689a47", "id": "E20160818001458060573844", "sendCount": 0, "type": "TRADE", "app_id": "hello", "version": 1471450508, "status": "WAIT_SELLER_SEND_GOODS" } |