首先下载微信官方demo放入项目中

地址:https://github.com/top-songshijie/WechatPay
<https://github.com/top-songshijie/WechatPay>

引入其中所需的文件,复制以下代码直接使用即可
public function _initialize() { parent::_initialize(); require_once
EXTEND_PATH . "WechatPay/lib/WxPay.Api.php"; require_once EXTEND_PATH .
"WechatPay/example/WxPay.JsApiPay.php"; require_once EXTEND_PATH .
"WechatPay/lib/WxPay.Notify.php"; require_once EXTEND_PATH .
'WechatPay/example/log.php'; } public function pay($openId , $price , $order_sn
, $url) { $price = intval($price * 100); $tools = new \JsApiPay(); $input = new
\WxPayUnifiedOrder(); $input->SetBody(""); $input->SetAttach("");
$input->SetOut_trade_no($order_sn); $input->SetTotal_fee($price);
$input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis",
time() + 600)); $input->SetGoods_tag(""); $input->SetNotify_url($url);
$input->SetTrade_type("JSAPI"); $input->SetOpenid($openId); $config = new
\WxPayConfig(); $order = \WxPayApi::unifiedOrder($config, $input);
$jsApiParameters = $tools->GetJsApiParameters($order); return
json_decode($jsApiParameters); } //回调 public function pay_notify() { $config =
new \WxPayConfig(); $notify = new \WxPayNotify(); $order = new OrderModel();
$user = new UsersModel(); $notify->Handle($config, false); $xml =
file_get_contents("php://input"); $base = new \WxPayResults(); $data =
$base->FromXml($xml); //验签 if ($base->CheckSign($config)) { $order_sn =
$data['out_trade_no']; } }