# wechat_pay **Repository Path**: andyChenDong/wechat_pay ## Basic Information - **Project Name**: wechat_pay - **Description**: 接口分三种类型: 统一支付接口类--UnifiedOrder 订单查询接口--OrderQuery 退款申请接口--Refund 退款查询接口--RefundQuery 对账单接口--DownloadBill 短链接转换接口--ShortUrl - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2017-02-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #wechat_pay WxPayPubHelper.php支付公共文件, 文件描述如下: /** * ==================================================== * 接口分三种类型: * 【请求型接口】--Wxpay_client_ * 统一支付接口类--UnifiedOrder * 订单查询接口--OrderQuery * 退款申请接口--Refund * 退款查询接口--RefundQuery * 对账单接口--DownloadBill * 短链接转换接口--ShortUrl * 【响应型接口】--Wxpay_server_ * 通用通知接口--Notify * Native支付——请求商家获取商品信息接口--NativeCall * 【其他】 * 静态链接二维码--NativeLink * JSAPI支付--JsApi * ===================================================== * 【CommonUtil】常用工具: * trimString(),设置参数时需要用到的字符处理函数 * createNoncestr(),产生随机字符串,不长于32位 * formatBizQueryParaMap(),格式化参数,签名过程需要用到 * getSign(),生成签名 * arrayToXml(),array转xml * xmlToArray(),xml转 array * postXmlCurl(),以post方式提交xml到对应的接口url * postXmlSSLCurl(),使用证书,以post方式提交xml到对应的接口url */ jsdk.php文件,主要是微信jsdk的主要事件处理: thinkphp3.2中的使用,扫码支付: public function weipay(){ vendor('WxPayPubHelper.WxPayPubHelper'); $pub = new \UnifiedOrder_pub(); $pub->setParameter('body','test'); $pub->setParameter('out_trade_no',time().mt_rand(11111,99999)); $pub->setParameter('total_fee',1); $pub->setParameter('spbill_create_ip',$_SERVER['REMOTE_ADDR']); $pub->setParameter('notify_url','http://test.com/webpage/test/weipayNavity'); $pub->setParameter('trade_type','NATIVE'); $res = $pub->getPrepay(); $this->assign('url2',$res['code_url']); $this->display(); } 支付jsapi: vendor('WxHelper.WxPayPubHelper'); $jsApi = new \JsApi_pub(); //根据id号查询对应的产品价格 //=========步骤2:使用统一支付接口,获取prepay_id============ $unifiedOrder = new \UnifiedOrder_pub(); //设置统一支付接口参数 $unifiedOrder->setParameter("openid",$user['user_login']);//商品描述 $unifiedOrder->setParameter("body","充值");//商品描述 //自定义订单号,此处仅作举例 $out_trade_no = 'LHGG'.date('Ymd',time()).mt_rand(1111,9999); $unifiedOrder->setParameter("out_trade_no",$out_trade_no.$user['id']);//商户订单号 $unifiedOrder->setParameter("total_fee",1);//总金额 $unifiedOrder->setParameter("notify_url",'http://test.com/Webpage/Game/GameNavity');//通知地址 $unifiedOrder->setParameter("trade_type","JSAPI");//交易类型 //非必填参数,商户可根据实际情况选填 $unifiedOrder->setParameter("attach",'fdasfds');//附加数据 $prepay_id = $unifiedOrder->getPrepayId(); //=========步骤3:使用jsapi调起支付============ $jsApi->setPrepayId($prepay_id); $jsApiParameters = $jsApi->getParameters(); $this->ajaxReturn($jsApiParameters,'json');