微信公众平台支付

来源:互联网 发布:淘宝任务平台 app 编辑:程序博客网 时间:2024/04/25 07:54

sdk调用片段

require_once dirname(__FILE__).'/log.php';require_once dirname(__FILE__).'/WxPay.JsApiPay.php';require_once dirname(__FILE__).'/../lib/WxPay.Api.php';require_once dirname(__FILE__).'/../lib/WxPay.Notify.php';class Weixin{    public function js_api_call($id_order,$total_fee){        //①、获取用户openid        $tools = new JsApiPay();        $openId = $tools->GetOpenid();        //②、统一下单        $input = new WxPayUnifiedOrder();        $input->SetBody("应付款");        $input->SetAttach("附件");        $input->SetOut_trade_no($id_order);        $input->SetTotal_fee($total_fee*100);        $input->SetTime_start(date("YmdHis"));        $input->SetTime_expire(date("YmdHis", time() + 600));        $input->SetGoods_tag("test");        $input->SetNotify_url(base_url()."Service/notify");        $input->SetTrade_type("JSAPI");        $input->SetOpenid($openId);        $order = WxPayApi::unifiedOrder($input);        $jsApiParameters = $tools->GetJsApiParameters($order);        return $jsApiParameters;    }    public function weixinnodify(){        $notify = new PayNotifyCallBack();        return $notify->Handle(false);    }}class PayNotifyCallBack extends WxPayNotify{    //查询订单    public function Queryorder($transaction_id)    {        $input = new WxPayOrderQuery();        $input->SetTransaction_id($transaction_id);        $result = WxPayApi::orderQuery($input);        Log::DEBUG("query:" . json_encode($result));        if(array_key_exists("return_code", $result)        && array_key_exists("result_code", $result)        && $result["return_code"] == "SUCCESS"                && $result["result_code"] == "SUCCESS")        {            return true;        }        return false;    }    //重写回调处理函数    public function NotifyProcess($data, &$msg)    {        Log::DEBUG("call back:" . json_encode($data));        $notfiyOutput = array();        if(!array_key_exists("transaction_id", $data)){            $msg = "输入参数不正确";            return false;        }        //查询订单,判断订单真实性        if(!$this->Queryorder($data["transaction_id"])){            $msg = "订单查询失败";            return false;        }        return true;    }}

2017/6/22
实际开发过程中遇到一个比较坑的问题,异步同志获取不到,经过调试发现由于框架将$GLOBALS[‘HTTP_RAW_POST_DATA’]屏蔽掉了,所以最后只要用file_get_contents(“php://input”)代替来获取返回参数即可

原创粉丝点击