public function buildRequest($req) { //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub($this->wxConfig); $unifiedOrder->setParameter("body", $req['body']); //商品描述 $unifiedOrder->setParameter("out_trade_no", $req['order_sn']); //商户订单号 $unifiedOrder->setParameter("total_fee", $req['order_paied'] * 100); //总金额 $unifiedOrder->setParameter("notify_url", $this->wxConfig['NOTIFY_URL']); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); if ($unifiedOrderResult["return_code"] == "FAIL") { //echo "通信出错:".$unifiedOrderResult['return_msg']."<br>"; return 0; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //echo "错误代码:".$unifiedOrderResult['err_code']."<br>"; //echo "错误代码描述:".$unifiedOrderResult['err_code_des']."<br>"; return 0; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; return $code_url; } }
private function config_jsdz() { $config = $this->config; $unifiedOrder = new UnifiedOrder_pub(); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body", "云购商品"); //商品描述 //自定义订单号,此处仅作举例 $total_fee = $config['money'] * 100; $out_trade_no = $config['code']; //$total_fee=1; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", $total_fee); //总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::$NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 //$unifiedOrder->setParameter("attach","XXXX");//附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //print_r($unifiedOrderResult); //exit; //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; $this->url = $code_url; //echo 'xx'; //header("location:".$code_url); //echo $code_url; // print_r($config); // print_r($unifiedOrderResult);exit; include 'native_dynamic_qrcode.php'; //商户自行增加处理流程 //...... } }
function get_code($order, $payment) { $unifiedOrder = new UnifiedOrder_pub(); $unifiedOrder->setParameter("body", $order['order_sn']); //商品描述 $out_trade_no = $order['order_sn']; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("attach", strval($order['log_id'])); //商户支付日志 $unifiedOrder->setParameter("total_fee", strval(intval($order['order_amount'] * 100))); //总金额 $unifiedOrder->setParameter("notify_url", WXNOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrderResult = $unifiedOrder->getResult(); $html = '<button type="button" onclick="javascript:alert(\'出错了\')">微信支付</button>'; if ($unifiedOrderResult["code_url"] != NULL) { $code_url = $unifiedOrderResult["code_url"]; $html = '<div class="wx_title">'; $html .= '<span id="wxlogo"><img src="/themes/main/images/weixin/WePayLogo.jpg" width="148" height="40"/></span>'; $html .= '<span id="tj"><img src="/themes/main/images/weixin/We_tj.jpg" width="47" height="20"/></span>'; $html .= '<span id="desc">亿万用户的选择,更快更安全</span>'; $html .= '<span id="price">支付:<font style="color:#ff6600">' . $order['order_amount'] . '</font> 元</span>'; $html .= '</div>'; $html .= '<div class="wx_qrcode" style="text-align:center">'; $html .= $this->getcode($code_url); $html .= "</div>"; $html .= "<div style=\"text-align:center\"><img src=\"/themes/main/images/weixin/wxfont.png\" width=\"186\" height=\"62\"></div>"; } return $html; }
function get_code($order, $payment) { $unifiedOrder = new UnifiedOrder_pub(); $unifiedOrder->setParameter("body", $order['order_sn']); //商品描述 $out_trade_no = $order['order_sn']; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("attach", strval($order['log_id'])); //商户支付日志 $unifiedOrder->setParameter("total_fee", strval(intval($order['order_amount'] * 100))); //总金额 $unifiedOrder->setParameter("notify_url", WXNOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrderResult = $unifiedOrder->getResult(); $html = '<button type="button" onclick="javascript:alert(\'出错了\')">微信支付</button>'; if ($unifiedOrderResult["code_url"] != NULL) { $code_url = $unifiedOrderResult["code_url"]; $html = '<div class="wx_qrcode" style="text-align:center">'; $html .= $this->getcode($code_url); $html .= "</div>"; $html .= "<div style=\"text-align:center\">支付后点击<a href=\"user.php?act=order_list\">此处</a>查看我的订单</div>"; } return $html; }
function getPayUrlForQRCode($paras = array()) { //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("openid", $paras['openid']); //用户标识 $unifiedOrder->setParameter("body", $paras['p_title']); //商品描述 //自定义订单号,此处仅作举例 $timeStamp = time(); $unifiedOrder->setParameter("out_trade_no", $paras['out_trade_no'] . rand(1, 10)); //商户订单号 $unifiedOrder->setParameter("total_fee", $paras['p_fee']); //总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrder->setParameter("attach", $paras['attach']); //附加数据 //支付交易5分钟后关闭 $time_expire = date('YmdHis', time() + 300); $unifiedOrder->setParameter("time_expire", "{$time_expire}"); //交易结束时间 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 //$unifiedOrder->setParameter("attach","XXXX");//附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); $code_url = ''; //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 //echo "通信出错:".$unifiedOrderResult['return_msg']."<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 //echo "错误代码:".$unifiedOrderResult['err_code']."<br>"; //echo "错误代码描述:".$unifiedOrderResult['err_code_des']."<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... } return $code_url; }
public function createQrcode() { $pkey = base64_decode(I("pkey")); $pkeys = explode("@", $pkey); if (count($pkeys) != 2) { $this->assign('out_trade_no', ""); } else { $morders = D('Home/Orders'); $obj["orderIds"] = $pkeys[1]; $data = $morders->getPayOrders($obj); $orders = $data["orders"]; $needPay = $data["needPay"]; $this->assign("orderIds", $orderIds); $this->assign("orders", $orders); $this->assign("needPay", $needPay); $this->assign("orderCnt", count($orders)); // 使用统一支付接口 $unifiedOrder = new \UnifiedOrder_pub(); $unifiedOrder->setParameter("body", "支付订单費用"); // 商品描述 // 自定义订单号,此处仅作举例 $timeStamp = time(); $out_trade_no = "{$timeStamp}"; // $out_trade_no = "1000001|1000002"; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); // 商户订单号 $unifiedOrder->setParameter("total_fee", $needPay * 100); // 总金额 $unifiedOrder->setParameter("notify_url", C('WxPayConf_pub.NOTIFY_URL')); // 通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); // 交易类型 $unifiedOrder->setParameter("attach", "{$pkey}"); // 附加数据 // $unifiedOrder->setParameter ( "detail", "Ipad mini" );//附加数据 $unifiedOrder->SetParameter("input_charset", "UTF-8"); // 获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); // 商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { // 商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { // 商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { // 从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; // 商户自行增加处理流程 } $this->assign('out_trade_no', $obj["orderIds"]); $this->assign('code_url', $code_url); $this->assign('unifiedOrderResult', $unifiedOrderResult); } $this->display("default/payment/wxnative2/qrcode"); }
public function wxqr_create() { $body = Req::post('body'); $out_trade_no = Req::post('out_trade_no'); $total_fee = Req::post('total_fee'); $notify_url = Req::post('notify_url'); $trade_type = Req::post('trade_type'); $appid = Req::post('appid'); $mch_id = Req::post('mch_id'); $spbill_create_ip = Req::post('spbill_create_ip'); $nonce_str = Req::post('nonce_str'); $sign = Req::post('sign'); $unifiedOrder = new UnifiedOrder_pub(); $unifiedOrder->setParameter("body", "{$body}"); $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", "{$total_fee}"); //总金额 $unifiedOrder->setParameter("notify_url", "{$notify_url}"); //通知地址 $unifiedOrder->setParameter("trade_type", "{$trade_type}"); //交易类型 $unifiedOrder->setParameter("appid", "{$appid}"); //公众账号ID $unifiedOrder->setParameter("mch_id", "{$mch_id}"); //商户号 $unifiedOrder->setParameter("spbill_create_ip", "{$spbill_create_ip}"); //终端ip $unifiedOrder->setParameter("nonce_str", "{$nonce_str}"); //随机字符串 $unifiedOrder->setParameter("sign", "{$sign}"); //签名 //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 $msg = array('type' => 'fail', 'msg' => '通信出错:' . $unifiedOrderResult['return_msg']); $this->redirect('/index/msg', false, $msg); exit; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 $msg = array('type' => 'fail', 'msg' => $unifiedOrderResult['err_code'] . ':' . $unifiedOrderResult['err_code_des']); $this->redirect('/index/msg', false, $msg); exit; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; $this->assign("code_url", $code_url); $this->assign("out_trade_no", $out_trade_no); $this->redirect('wxqr_page', false); //商户自行增加处理流程 //...... } }
function get_payform($order_info) { if (!defined('WXAPPID')) { $_SESSION['order_info'] = $order_info; define("WXAPPID", $this->_config['appid']); define("WXMCHID", $this->_config['mchid']); define("WXKEY", $this->_config['key']); define("WXAPPSECRET", $this->_config['appsecret']); define("WXCURL_TIMEOUT", 30); define('WXNOTIFY_URL', $this->_create_notify_url($order_info["order_id"], $order_info['payment_code'])); define('WXJS_API_CALL_URL', $this->_create_notify_url($order_info["order_id"], $order_info['payment_code'])); define('WXSSLCERT_PATH', ROOT_PATH . '/data/cacert/1/apiclient_cert.pem'); define('WXSSLKEY_PATH', ROOT_PATH . '/data/cacert/1/apiclient_key.pem'); } require_once dirname(__FILE__) . "/WxPayPubHelper/WxPayPubHelper.php"; $unifiedOrder = new UnifiedOrder_pub(); $out_trade_no = $this->_get_trade_sn($order_info); $_SESSION['out_trade_on'] = $out_trade_no; $unifiedOrder->setParameter("body", $out_trade_no); //商品描述 $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("attach", $order_info['order_id']); //商户支付日志 $unifiedOrder->setParameter("total_fee", strval(intval($order_info['order_amount'] * 100))); //总金额 $unifiedOrder->setParameter("notify_url", WXNOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrderResult = $unifiedOrder->getResult(); $html = '<button type="button" onclick="javascript:alert(\'出错了\')">微信支付</button>'; if ($unifiedOrderResult["code_url"] != NULL) { $code_url = $unifiedOrderResult["code_url"]; $html = '<div class="wxnative" style="text-align:center">'; $html .= $this->getcode($code_url, $order_info['order_id']); $html .= "</div>"; $html .= "<div style=\"text-align:center;font-size:14px;\"><a href=\"index.php?app=buyer_order\" style=\"color:#ff0000;\">支付后点击此处</a>查看我的订单</div>"; } return $html; }
public function dynamic_qrcode($payid, $fee, $out_trade_no, $tUrl, $eUrl, $proDesc) { //使用统一支付接口 $unifiedOrder = new \UnifiedOrder_pub(); if (!$payid || !$fee || !$out_trade_no || !$tUrl || !$eUrl || !$proDesc) { showTips('/index.php?s=/Pc/Centerall/my_order.html', "参数提交有误!"); } //自定义订单号,此处仅作举例 $fee = $fee * 100; $unifiedOrder->setParameter("body", "{$proDesc}"); //商品描述 $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", "{$fee}"); //总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrder->setParameter("attach", "{$payid}"); //附加数据 订单ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 return "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 return "错误代码:" . $unifiedOrderResult['err_code'] . "<br>" . "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... return $code_url; } }
/** * 动态模式支付 生成二维码 * $dataArr 提交参数内容 */ function NativeDynamicInterface($dataArr = array()) { $unifiedOrder = new UnifiedOrder_pub(); $unifiedOrder->setParameter("body", $dataArr['body']); //商品描述 $timeStamp = time(); $out_trade_no = WxPayConf_pub::APPID . "{$timeStamp}"; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", $dataArr['total_fee']); //总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... } return $code_url; }
function natpayHtml($order) { if (!strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')) { $unifiedOrder = new UnifiedOrder_pub(); // 设置统一支付接口参数 $return_url = 'http://' . $_SERVER['HTTP_HOST'] . '/respond.php'; $unifiedOrder->setParameter("body", $order['order_sn']); $unifiedOrder->setParameter("out_trade_no", $order['order_id']); // 商户订单号 $unifiedOrder->setParameter("total_fee", $order['order_amount'] * 100); // 总金额 $unifiedOrder->setParameter("notify_url", $return_url); // 通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); // 交易类型 $unifiedOrderResult = $unifiedOrder->getResult(); if ($unifiedOrderResult["return_code"] == "FAIL") { return "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { $log_id = $GLOBALS['db']->getOne("SELECT log_id FROM " . $GLOBALS['ecs']->table('pay_log') . "where order_id='{$order['order_id']}' and is_paid=0 order by log_id desc"); if ($log_id > 0 && $unifiedOrderResult['err_code'] == 'ORDERPAID') { order_paid($log_id, 2); } return "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } $product_url = $unifiedOrderResult["code_url"]; return "<img src='http://qr.liantu.com/api.php?text=" . $product_url . "' alt='扫描进行支付'><iframe src='weixin_order_check.php?oid={$order['order_id']}' style='display:none'></iframe>"; } }
function wechat_qcode_pay() { require_once APPPATH . 'libraries/wechat/WxPayPubHelper.php'; $out_trade_no = $this->uri->segment(3); $order_temp = $this->tickets->select('orders', array('to_order_sn' => $out_trade_no)); $order = $order_temp[0]; if ($order->to_status == ORDER_PAYED) { redirect('/member/order_list'); } $wechat_config_temp = $this->tickets->select('payment', array('name' => 'wechat')); $weipay = $wechat_config_temp[0]; //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub($weipay->app_id, $weipay->payname, $weipay->partner_key, $weipay->app_secret); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body", "小树好吃"); //商品描述 //自定义订单号,此处仅作举例 $timeStamp = time(); $notify_url = base_url() . '/wechat/wnotice'; //$out_trade_no = $weipay->app_id."$timeStamp"; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", 100 * $order->to_order_amount); //总金额 $unifiedOrder->setParameter("notify_url", $notify_url); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... } $data['out_trade_no'] = $out_trade_no; $data['code_url'] = $code_url; $data['unifiedOrderResult'] = $unifiedOrderResult; $this->load->view('/wechat/qcode', $data); }
public function native_pays() { //全局引入微信支付类 Vendor('Wxpay.WxPayPubHelper.WxPayPubHelper'); //使用统一支付接口 $unifiedOrder = new \UnifiedOrder_pub(); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body", "贡献一分钱"); //商品描述 //自定义订单号,此处仅作举例 $timeStamp = time(); $out_trade_no = \WxPayConf_pub::APPID . $timeStamp; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", "1"); //总金额 $unifiedOrder->setParameter("notify_url", \WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 //$unifiedOrder->setParameter("attach","XXXX");//附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... } $this->assign('out_trade_no', $out_trade_no); $this->assign('code_url', $code_url); $this->assign('unifiedOrderResult', $unifiedOrderResult); $this->display(); }
public function send_pay() { //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); $amount = trim($this->config['money']) * 100; $notify_url = $this->config['NotifyUrl']; //通知URL $weixinMoney = $amount / 100 + '.00'; //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 //iconv("gb2312","utf-8//IGNORE", $unifiedOrder->setParameter("body", $this->config['title']); //商品描述 //自定义订单号,此处仅作举例 $out_trade_no = $this->config['code']; $unifiedOrder->setParameter("out_trade_no", $out_trade_no); //商户订单号 $unifiedOrder->setParameter("total_fee", $amount); //总金额 $unifiedOrder->setParameter("notify_url", $notify_url); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 $unifiedOrder->setParameter("attach", "111"); //附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID // ["parameters"]=> array(6) { // ["body"]=> string(10) "1元雨购" // ["out_trade_no"]=> string(18) "C14523207927686403" // ["total_fee"]=> int(1000) // ["notify_url"]=> string(54) "http://www.gd1yyg.com/index.php/pay/weixin_url/houtai/" // ["trade_type"]=> string(6) "NATIVE" // ["attach"]=> string(3) "111" } // ["response"]=> NULL // ["result"]=> NULL // ["url"]=> string(46) "https://api.mch.weixin.qq.com/pay/unifiedorder" // ["curl_timeout"]=> int(30) //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); var_dump($unifiedOrder); exit; //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } else { if ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo iconv("utf-8", "gb2312//IGNORE", "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"); echo iconv("utf-8", "gb2312//IGNORE", "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"); } else { if ($unifiedOrderResult["code_url"] != NULL) { $qrcode = 'http://www.gd1yyg.com/statics/templates/auto-moban/js/qrcode.js'; //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; $saomiao = "微信安全支付,请扫我"; // //参数1表示图像大小,取值范围1-10;参数2表示质量,取值范围'L','M','Q','H' if ($unifiedOrderResult["code_url"] != NULL) { $hehe = ' var url = "' . $code_url . '";var qr = qrcode(10, "M");qr.addData(url);qr.make();var wording=document.createElement("p"); var code=document.createElement("DIV"); code.innerHTML = qr.createImgTag();var element=document.getElementById("qrcode"); element.appendChild(wording);element.appendChild(code);'; } $def_url = ' <html> <head></head> <body> <div class="wx_header"> <div class="wx_logo"> <img title="微信支付" alt="微信支付标志" src="http://skin.1yyg.com/mycart/images/wxlogo_pay.png?v=1"> </div> </div> <div class="weixin"> <div class="weixin2"> <b class="wx_box_corner left pngFix"></b><b class="wx_box_corner right pngFix"></b> <div class="wx_box pngFix"> <div class="wx_box_area"> <div class="pay_box qr_default"> <div class="area_bd"><span class="wx_img_wrapper" id="qr_box"> <div id="qrcode" ></div> <img style="left: 50%; opacity: 0; display: none; margin-left: -101px;" class="guide pngFix" src="http://skin.1yyg.com/mycart/images/wxwebpay_guide.png" alt="" id="guide"> </span> <div class="msg_default_box1"><i class="icon60_qr pngFix"></i> <p> 请使用微信<br> 扫一扫完成支付 </p> </div> </div> </div> </div> <div class="wx_hd"> <div class="wx_hd_img icon_wx"></div> </div> <div class="wx_money"><span>¥</span>' . $weixinMoney . '.00</div> <!--支付订单号--> <div class="wx_pay"> <p><span class="wx_left">支付订单号</span><span class="wx_right">' . $out_trade_no . '</span></p> <!--p><span class="wx_left">支付订单号</span><span class="wx_right"></span></p--> </div> <div class="wx_kf"> <div class="wx_kf_img icon_wx"></div> <div class="wx_kf_wz"> <p>客服400-992-2280</p> </div> </div> </div> </div> </div> <div class="g-copyrightCon"> <div class="w1190"> <div class="g-links"> <a href="http://www.gd1yyg.com/" target="_blank" title="首页">首页</a><s></s> <a href="http://www.1yyg.com/help/1" target="_blank" title="关于雨购">关于雨购</a><s></s> <a href="http://www.1yyg.com/help/3" target="_blank" title="隐私声明">隐私声明</a><s></s> <a href="http://www.gd1yyg.com/single/business" target="_blank" title="合作专区">合作专区</a><s></s> <a href="http://www.gd1yyg.com/link.html" target="_blank" title="友情链接">友情链接</a><s></s> <a href="http://www.1yyg.com/help/22" target="_blank" title="联系我们">联系我们</a> </div> <div class="g-copyright">Copyright © 2013 - 2015, 版权所有 gd1yyg.com 粤ICP备15112849号-1</div> <div class="g-authentication"> <a target="_blank" class="fi_ectrustchina"></a> <a target="_blank" class="fi_315online"></a> <a target="_blank" class="fi_qh"></a> <a target="_blank" class="fi_cnnic"></a> <a target="_blank" class="fi_anxibao"></a> <a target="_blank" class="fi_pingan"></a> <a target="_blank" class="fi_yangshi"></a> </div> </div> </div> </body> <style> body { font-family: "Microsoft YaHei",Helvetica,Verdana,Arial,Tahoma; font-size: 14px; line-height: 1.6; color: #303030; background: url(http://skin.1yyg.com/MyCart/images/wxbj.png) repeat scroll 0 0 #D4D5D7; } .wx_header { background: url(http://skin.1yyg.com/MyCart/images/wx_icon.png); background-position: 0 -235px; height: 66px; margin-bottom: 7px; } .wx_kf .wx_kf_img { float: left; width: 30px; height: 35px; display: block; background-position: 0 -193px; } .wx_logo { padding-bottom: 0; padding-top: 18px; text-align: center; }img { color: #999; }.weixin2 { margin: 0 auto 25px; width: 920px; background: url(http://skin.1yyg.com/MyCart/images/wxbg_h.png) repeat-x #FFF; background-position: -5px -60px; box-shadow: 0 1px 1px rgba(0,0,0,0.35); position: relative; }.wx_box_corner.left { background-position: 0 0; left: -5px; } .wx_box_corner { background: url(../images/wxbg_h.png) no-repeat; height: 30px; position: absolute; top: 0; width: 6px; }.wx_box_corner.right { background-position: 0 -30px; right: -5px; } .wx_box { background: url(http://skin.1yyg.com/MyCart/images/wxbg_mail_box.png) repeat-x bottom left; bottom: -10px; overflow: hidden; padding: 60px 170px 100px; position: relative; } .wx_box_area { text-align: center; } .wx_img_wrapper { display: block; width: 306px; height: 306px; margin: 0 auto; position: relative; } .wx_img_wrapper .qrcode2 { height: 301px; width: 301px; padding: 0; } .msg_default_box1 { width: 258px; margin: 0 auto; padding: 12px 0; border: 1px solid #2b4d69; background-color: #445f85; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; letter-spacing: 6px; text-align: center; color: #FFF; } .msg_default_box1 .icon60_qr { background-position: 0 -60px; } .icon60_qr { width: 60px; height: 60px; display: inline-block; vertical-align: middle; background: transparent url(http://skin.1yyg.com/MyCart/images/wx_icon_pay.png) no-repeat 0 0; margin-right: 20px; } .msg_default_box1 p { display: inline-block; vertical-align: middle; letter-spacing: normal; text-align: left; font-size: 16px; color: #FFF; } .msg_box { background-color: #4CA698; border: 1px solid #259483; border-radius: 3px; box-shadow: 0 1px 2px rgba(0,0,0,0.2); color: #FFF; letter-spacing: 6px; padding: 12px 0; text-align: center; }.qr_default .icon_wx { background-position: 0 -60px; } .msg_box i { margin-left: -16px; } .icon_wx { background: url(http://skin.1yyg.com/MyCart/images/wx_icon.png); display: inline-block; height: 60px; vertical-align: middle; width: 60px; } .msg_box p { display: inline-block; font-size: 16px; letter-spacing: normal; text-align: left; vertical-align: middle; } .msg_box strong { color: #FFF; display: block; font-size: 15px; font-weight: 400; }.wx_hd { border-bottom: 3px solid #E0E3EB; width: 100%; position: relative; height: 70px; }.wx_hd .icon_wx { background-position: 11px -130px; } .wx_hd_img { width: 60px; height: 60px; display: block; background-color: #FFF; display: inline-block; padding-left: 12px; padding-right: 14px; position: relative; top: 34px; left: 250px; } .icon_wx { background: url(http://skin.1yyg.com/MyCart/images/wx_icon.png); display: inline-block; height: 60px; vertical-align: middle; width: 60px; } .g-authentication { clear: both; text-align: center; padding: 15px 0px 8px; } .wx_money { text-align: center; border-bottom: 1px solid #D0D8E4; color: #585858; font-size: 60px; font-weight: 400; line-height: 68px; padding-bottom: 20px; padding-top: 50px; width: 100%; } div { margin: 0 auto; } .wx_pay { padding: 30px 0 60px; }.wx_pay p { width: 100%; display: block; overflow: hidden; height: 20px; line-height: 20px; color: #8E8E8E; font-size: 14px; }.wx_left { float: left; text-align: left; }.wx_right { float: right; text-align: right; color: #303030; }.wx_kf { width: 100%; border-top: 3px solid #D0D8E4; padding: 20px 0 0; overflow: hidden; }.wx_kf_img { float: left; width: 30px; height: 35px; display: block; background-position: 0 -193px; } .icon_wx { background: url(http://skin.1yyg.com/MyCart/images/wx_icon.png); display: inline-block; height: 60px; background-color: #FFF; vertical-align: middle; width: 60px; } .wx_kf_wz { float: left; color: #303030; } .g-copyrightCon { clear: both; background: #fff; } .w1190 { clear: both; width: 980px; margin: 0 auto; } .g-links { text-align: center; padding: 5px 0; }.g-copyright { text-align: center; color: #999; }.g-links a { color: #666; } a:focus, a:link { outline: none; } a:link, a:visited { text-decoration: none; } a { color: #374673; } a { outline: none; blr: expression(this.onFocus=this.blur()); } .g-links a { color: #666; } a:focus, a:link { outline: none; } a:link, a:visited { text-decoration: none; } a { color: #374673; } a { outline: none; blr: expression(this.onFocus=this.blur()); } .g-links a { color: #666; } a:focus, a:link { outline: none; } a:link, a:visited { text-decoration: none; } a { color: #374673; } a { outline: none; blr: expression(this.onFocus=this.blur()); } .g-links a:hover { color: #f60; text-decoration: underline; }.g-links s { border-left: 1px solid #e4e4e4; width: 0; height: 12px; margin: 0 11px 0 15px; overflow: hidden; font-size: 0; display: inline-block; position: relative; top: 1px; } .g-authentication a { background: transparent url("/statics/templates/auto-moban/images/icon.png") no-repeat scroll 0% 0%; width: 90px; height: 32px; display: inline-block; margin: 0px 2px; } .g-authentication a.fi_ectrustchina { background-position: 0px 0px; } .g-authentication a.fi_315online { background-position: 0px -32px; } .g-authentication a.fi_qh { background-position: 0px -96px; } .g-authentication a.fi_cnnic { background-position: 0px -64px; } .g-authentication a.fi_anxibao { background-position: -1px -128px; } .g-authentication a.fi_pingan { background-position: 0px -160px; } .g-authentication a.fi_yangshi { background-position: 0px -192px; } </style> <script src="' . $qrcode . '"></script><script>' . $hehe . '</script></html>'; echo $def_url; exit; //商户自行增加处理流程 //...... } } } }
/** *扫描二维码支付 * 测试地址:http://test.idaiyan.cn/index.php?r=weixin/native */ public function actionNative() { //使用统一支付接口 $unifiedOrder = new \UnifiedOrder_pub(); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body", "贡献一分钱"); //商品描述 //自定义订单号,此处仅作举例 $timeStamp = time(); $out_trade_no = \WxPayConf_pub::APPID . "{$timeStamp}"; $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", "1"); //总金额 $unifiedOrder->setParameter("notify_url", \WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 //$unifiedOrder->setParameter("attach","XXXX");//附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //要传递到前台 //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //要传递到前台 //商户自行增加处理流程 //...... $url = Yii::$app->request->baseurl; // return $this->render('native', ['code_url' => $code_url, 'out_trade_no' => $out_trade_no, 'url' => $url, 'unifiedOrderResult' => $unifiedOrderResult]); $str = '<div align="center" id="qrcode"></div>'; $str .= "<script src='{$url}/static/weixin/js/qrcode.js'></script>"; $str .= '<script>'; if ($unifiedOrderResult["code_url"] != NULL) { $str .= 'var url = "' . $code_url . '";'; $str .= "var qr = qrcode(10, 'M');"; $str .= 'qr.addData(url);'; $str .= 'qr.make();'; $str .= "var wording=document.createElement('p');"; $str .= 'wording.innerHTML = "pay";'; $str .= "var code=document.createElement('DIV');"; $str .= 'code.innerHTML = qr.createImgTag();'; $str .= 'var element=document.getElementById("qrcode");'; $str .= 'element.appendChild(wording);'; $str .= 'element.appendChild(code);'; } $str .= '</script>'; echo $str; } }
public function send_pay() { //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); $amount = trim($this->config['money']) * 100; $notify_url = $this->config['NotifyUrl']; //通知URL //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 //iconv("gb2312","utf-8//IGNORE", $unifiedOrder->setParameter("body", $this->config['title']); //商品描述 //自定义订单号,此处仅作举例 $out_trade_no = $this->config['code']; $unifiedOrder->setParameter("out_trade_no", $out_trade_no); //商户订单号 $unifiedOrder->setParameter("total_fee", $amount); //总金额 $unifiedOrder->setParameter("notify_url", $notify_url); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 $unifiedOrder->setParameter("attach", "111"); //附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo iconv("utf-8", "gb2312//IGNORE", "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"); echo iconv("utf-8", "gb2312//IGNORE", "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"); } elseif ($unifiedOrderResult["code_url"] != NULL) { $qrcode = 'http://www.1ybye.com/system/modules/pay/lib/qrcode.js'; //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; $saomiao = "微信安全支付,请扫我"; // //参数1表示图像大小,取值范围1-10;参数2表示质量,取值范围'L','M','Q','H' if ($unifiedOrderResult["code_url"] != NULL) { $hehe = ' var url = "' . $code_url . '";var qr = qrcode(10, "M");qr.addData(url);qr.make();var wording=document.createElement("p");wording.innerHTML = "' . $saomiao . '"; var code=document.createElement("DIV"); code.innerHTML = qr.createImgTag();var element=document.getElementById("qrcode"); element.appendChild(wording);element.appendChild(code);'; } $def_url = '<html><head></head><body><div align="center" id="qrcode"> </div></body><script src="' . $qrcode . '"></script><script>' . $hehe . '</script></html>'; echo $def_url; exit; //商户自行增加处理流程 //...... } }
protected function reorder() { if (isset($this->request->get['order_id'])) { $order_id = $this->request->get['order_id']; } else { $order_id = $this->session->data['zb_cart_orderid']; } //$this->data['custom'] = $encryption->encrypt($order_id); $this->load->model('checkout/order'); $order_info = $this->model_checkout_order->getOrder($order_id); $this->data['order_info'] = $order_info; $total = $order_info['total']; $amount = number_format($total, 2, '.', ''); //使用统一支付接口 $unifiedOrder = new UnifiedOrder_pub(); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body", "可益健康网购订单"); //商品描述 //自定义订单号,此处仅作举例 $timeStamp = time(); $out_trade_no = WxPayConf_pub::APPID . "{$timeStamp}"; $unifiedOrder->setParameter("out_trade_no", $order_id); //商户订单号 $unifiedOrder->setParameter("total_fee", $amount * 100); //总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 //$unifiedOrder->setParameter("attach","XXXX");//附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); $this->data["unifiedOrderResult"] = $unifiedOrderResult; //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/weixinpay.tpl')) { $this->template = $this->config->get('config_template') . '/template/payment/weixinpay.tpl'; } else { $this->template = 'default/template/payment/weixinpay.tpl'; } $this->render(); }
//总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 //$unifiedOrder->setParameter("attach","XXXX");//附加数据 //$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间 //$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 //$unifiedOrder->setParameter("product_id","XXXX");//商品ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... } ?>
public function wxPay() { $order_id = ggp('order_id:i'); vendor('WxPayPubHelper.WxPay', '', '.pub.config.php'); WxPayConf_pub::$SSLCERT_PATH .= $_SERVER['SERVER_NAME'] . '_cert.pem'; WxPayConf_pub::$SSLKEY_PATH .= $_SERVER['SERVER_NAME'] . '_key.pem'; WxPayConf_pub::$APPID = $this->setting['wx_appid']; WxPayConf_pub::$MCHID = $this->setting['wx_mchid']; WxPayConf_pub::$KEY = $this->setting['wx_key']; WxPayConf_pub::$APPSECRET = $this->setting['wx_appsecret']; vendor('WxPayPubHelper.WxPayPubHelper'); $where = "order_id='{$order_id}' and state=6"; $order = M('order')->where($where)->find(); if (empty($order)) { exit('没有找到订单'); } $unifiedOrder = new UnifiedOrder_pub(); $unifiedOrder->setParameter("body", $order['store_name']); //商品描述 $unifiedOrder->setParameter("out_trade_no", $order['order_sn']); //商户订单号 $unifiedOrder->setParameter("total_fee", $order['pay_price'] * 100); //总金额 $notify = "http://{$_SERVER['SERVER_NAME']}/wx_notify.php"; $unifiedOrder->setParameter("notify_url", $notify); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 echo "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 echo "错误代码:" . $unifiedOrderResult['err_code'] . "<br>"; echo "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $codeUrl = $unifiedOrderResult["code_url"]; } $this->a('codeUrl', $codeUrl); $this->a('order_id', $order_id); $this->d("Order:wxpay"); }