$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;
}
?>