微信支付宝整合插件版本是1.2.9
微信公众号支付示例:
/** * 返回微信公众号支付信息 * * @return void */ public function order($order = null) { // halt($order); $user = Session::get('wechat_user'); if (!$user) { $this->error('请登陆', url('/cms/user/login')); // halt($user); } // $app = $this->get_wx_gzh_app(); $app = (new \app\api\controller\Tpmecms)->get_wx_gzh_app(); $order_data = Db::name('goodsorder')->where('order', $order)->find(); // halt($order_data); $user = Db::name('user')->where('id', $order_data['uid'])->find(); // $result = $app->order->unify([ // 'body' => '购买商品', // 'out_trade_no' => '123234720231', // 'total_fee' => 1, // // 'spbill_create_ip' => '123.12.12.123', // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址 // 'notify_url' => $this->request->domain().'pay/notify?order='.$order, // 支付结果通知网址,如果不设置则会使用配置里的默认地址 // 'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型 // 'openid' => $user['wx_openid'], // ]); // 商品信息 $goods = Db::name('goods')->where('id', $order_data['goods_id'])->find(); $params = [ 'amount' => \think\Config::get('site.pay_test')?"0.01":$order_data['money'], //,, //$order_data['money'], 'orderid' => $order, 'type' => "wechat", 'title' => $goods['name'], 'notifyurl' => $this->request->domain() . '/api/pay/query_goods_order?order=' . $order, //支付回掉 'returnurl' => $this->request->domain() . '/cms/order/order_info?order=' . $order, 'method' => "mp", 'openid' => $user['wx_openid'], // 'auth_code'=>"验证码" ]; $payData = \addons\epay\library\Service::submitOrder($params); $app->jssdk->setUrl($this->request->domain() . '/cms/pay/'); $this->view->assign("orderData", $params); $this->view->assign("payData", json_decode($payData, true)); // halt($thi->request->param()); return $this->view->fetch(); // return $this->view->fetch('/shop/goods'); }
js部分
{include file="shop/com/wx_config" /} function pay(order){ $.post("/cms/pay/pay", { order: order }, function (data, status) { console.log('支付信息',data); wx.chooseWXPay({ // appId:data.appId, timestamp: data.timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符 nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位 package: data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) // package: 'prepay_id='+data.prepay_id, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) signType: data.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致 paySign: data.paySign, // 支付签名 success: function (res) { // 支付成功后的回调函数 alert('支付成功'); window.location.href = '/cms/shop/order_info?order='+order; } }); }); }
{include file="shop/com/wx_config" /}
function pay(order){
$.post("/cms/pay/pay", { order: order }, function (data, status) { console.log('支付信息',data); wx.chooseWXPay({ // appId:data.appId, timestamp: data.timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符 nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位 package: data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) // package: 'prepay_id='+data.prepay_id, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) signType: data.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致 paySign: data.paySign, // 支付签名 success: function (res) { // 支付成功后的回调函数 alert('支付成功'); window.location.href = '/cms/shop/order_info?order='+order; } }); }); }