$v) { if (strcasecmp('is_qrcode', $k) == 0) continue; $url .= "&{$k}={$v}"; } if (empty($url)) $url = GetLocaleUrl(); else { $sublen = mb_strlen('&', USEDCHARSET); $url = GetLocaleUrl() . '?' . mb_substr($url, $sublen, mb_strlen($url, USEDCHARSET) - $sublen, USEDCHARSET); } $local_path = dirname(__FILE__); $short_name = '/qrcodeimg/' . date('YmdHis') . '.png'; $logo_name = $local_path . '/img/qr_logo.png'; $long_name = $local_path . $short_name; QRcode::png($url, $long_name, QR_ECLEVEL_L, 8, 2); /// 合并二维码和logo图片 $img = imagecreatefromstring(file_get_contents($long_name)); $logo = imagecreatefromstring(file_get_contents($logo_name)); if ($img && $logo) { $img_width = imagesx($img); /// 二维码图片宽度 $img_height = imagesy($img); /// 二维码图片高度 $logo_width = imagesx($logo); /// logo图片宽度 $logo_height = imagesy($logo); /// logo图片高度 $logo_qr_width = $img_width / 6; $scale = $logo_width / $logo_qr_width; $logo_qr_height = $logo_height / $scale; $from_width = ($img_width - $logo_qr_width) / 2; /// 重新组合图片并调整大小 imagecopyresampled($img, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); /// 输出图片 header('Content-type: image/png'); imagepng($img); imagedestroy($logo); imagedestroy($img); } ///$img_link = dirname(GetLocaleUrl()) . $short_name; ///echo "

在线支付
"; unlink($long_name); exit; } ?> $v) { $param .= " \" \" + " . PHP_EOL; } $attach = GetAttachParameters(array('attach', 'is_qrcode',)); foreach ($attach as $k => $v) { $param .= " \" \" + " . PHP_EOL; } $html = << function submit() { var fee = document.getElementById('fee').value; if ('' == fee || undefined == fee) { alert('请输入要支付的金额(单位为分)'); return; } var script = ""; $('#mainbody').append(script); $('#frm').submit(); }
  • 总金额: *
EOL; } else { /// 有fee参数表示已提交页面中输入的支付金额 /// 获取附加参数 $ignore = array('sid','scode','app_id','dev_key','market_key','fee','title','order_id','notice_url','return_url','sign_key','is_qrcode','attach',); $attach1 = GetAttachParameters($ignore, $attach); $attach2 = GetAttachParameters($ignore); $attach = $attach1 + $attach2; /// 通过接口获取门店所支援的支付方式 $data = array( 'appid' => $app_id, /// appid 'devkey' => $dev_key, /// 开发者key 'market_key' => $market_key, /// 门店key 'level' => 1, /// 支付类型(1: 线上, 2: 扫码, 3: app) 'version' => 1,/// 版本号 ); $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 $result = new ResultObject(rawurldecode(SendPost('https://api.tscce.cn/api/newpay/querylist', $data))); if (0 == $result->error && count($result->data) > 0) { /// 成功 /// 获取详细的支付接口信息,这里区分是微信还是支付宝,每种方式只取第一种 $wechat = null; /// 微信限定 $alipay = null; /// 支付宝限定 $browser = null; /// 浏览器限定 foreach ($result->data as $item) { if (mb_strstr($item->third_flag, 'wechat', false, USEDCHARSET)) { /// 包含wechat表示都是各种类型的微信支付 if (empty($wechat)) $wechat = $item; } elseif (mb_strstr($item->third_flag, 'alipay', false, USEDCHARSET)) { /// 包含alipay表示都是各种类型的支付宝支付 if (empty($alipay)) $alipay = $item; } else { if (empty($browser)) $browser = $item; } } if (empty($wechat) && empty($alipay) && empty($browser)) { $html = << alert('该门店不支援任何的支付方式!'); EOL; } else { $wechatform = ''; $alipayform = ''; $browserform = ''; $wechathtml = ''; $alipayhtml = ''; $browserhtml = ''; if (!empty($wechat)) { /// 支付要用的参数 $data = $attach + array( 'appid' => $app_id, /// appid 'devkey' => $dev_key, /// 开发者key 'sid' => $sid, /// sid 'scode' => $scode, /// scode 'orderid' => $order_id, /// 订单号 'fee' => $fee, /// 支付金额(单位分) 'title' => $title, /// 支付标题 'notice_url' => $notice_url, /// 回调页面地址(异步) 'return_url' => $return_url, /// 回调页面地址(同步) 'paytype' => $wechat->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) 'version' => 1, /// 接口版本号, 整型, 目前只支持1 ); $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 /// ==== ↓生成form表单↓ ==== $wechatform = ''; /// ==== ↑生成form表单↑ ==== $wechathtml = << EOL; } if (!empty($alipay)) { /// 支付要用的参数 $data = $attach + array( 'appid' => $app_id, /// appid 'devkey' => $dev_key, /// 开发者key 'sid' => $sid, /// sid 'scode' => $scode, /// scode 'orderid' => $order_id, /// 订单号 'fee' => $fee, /// 支付金额(单位分) 'title' => $title, /// 支付标题 'notice_url' => $notice_url, /// 回调页面地址(异步) 'return_url' => $return_url, /// 回调页面地址(同步) 'paytype' => $alipay->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) 'version' => 1, /// 接口版本号, 整型, 目前只支持1 ); $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 $alipayform = ''; $alipayhtml = << EOL; } if (!empty($browser)) { /// 支付要用的参数 $data = $attach + array( 'appid' => $app_id, /// appid 'devkey' => $dev_key, /// 开发者key 'sid' => $sid, /// sid 'scode' => $scode, /// scode 'orderid' => $order_id, /// 订单号 'fee' => $fee, /// 支付金额(单位分) 'title' => $title, /// 支付标题 'notice_url' => $notice_url, /// 回调页面地址(异步) 'return_url' => $return_url, /// 回调页面地址(同步) 'paytype' => $browser->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) 'version' => 1, /// 接口版本号, 整型, 目前只支持1 ); $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 $browserform = ''; $browserhtml = << EOL; } /* if (empty($wechat)) $html = << alipayform.submit(); EOL; elseif (empty($alipay)) $html = << wechatform.submit(); EOL; else */ $html = << {$wechathtml} {$alipayhtml} {$browserhtml} EOL; } } elseif (0 != $result->error) { /// 有错误发生 $html = << alert('{$result->msg}'); EOL; } else { $html = << alert('该门店不支援任何的支付方式!'); EOL; } } echo $html; } ?>