yzms/api/pay_jd.php

291 lines
11 KiB
PHP
Raw Permalink Normal View History

2024-04-01 15:54:27 +08:00
<?
//file_put_contents("1.txt", print_r($_POST, 1)); exit;
/*$_POST['uid'] = 'FuN2B8wSW9mhZEr4S6leHcSnd+q4KgN7N0MWG7dsAqrjcy4xfRPlqJWHQJbmqk/oNxgEBcAg6fLEslVUi/33wUnlm0gmmhreAuCiNnc5g+R2uYfDr36yKmX5LwNdKSDQZLd/qoPLc8skK31uaiteUf1N9tVh6B0/csK0TDPHwxY=';
$_POST['submitOrderTime'] = '3PqSB8/FAm/7y6h+nnw8eYTZSCd7dgybvKf3uIbxPR8NHamTTEuble0EXCcYQrwL7Dbqeadjw0PowIFvI+XIgmujdl/Hsv8xH7sOXGr5QhnlaruRh7MV9kM6cp8W9pymd48Sq3Y1ssMiP1usrGY6uMMcSmW0BnN+dbO/YlUVIIE=';
$_POST['orderId'] = '3tzbJtN2oQyGWzeglDq0eiu2M23b/QOHJFT1+lRApSGfu/BeY3OidvbdXjg48LF17jnQJhZJU7ukahpGBwgFABGVNcHsnrA1bsXrp1k43TWSacuTZ7ZFkmPdmlFQgO61GFyov+LgAmBAHrkBTkodPtyyuIYnlCsZqP5CKuU7gl4=';
$_POST['totalMoney'] = 'rkiQBi8KiWXRGYF2vrgqB3MNHOSpy+X2l52SEofX4m4dBQc7QGK09quA6/TE3Znt13JyqmmFEAXtJqv9AC4Rj76EII5AzxmmofMW0xGMzr3Zkk5w8xSGgfPFNuCoCI78UPLPDjs581SfQLSFtgTOOuPKRthuqvi5Ei9ohdw+N6Q=';
$_POST['freight'] = 'uuAyjIVVt+WIa5eYXNJpIekNPkYpMHswg6BuNsbfDOotdBqv8LZmh5dOrX3G59B045XFrLHTxOtOIVeSWNLnr/J1q9lBAGNHHLqtu6DMWoax5n0OKkflwGh38rYUu+I5wHcdeUC1FOgDoWCw/cMZlZS0PWuWNJ1GUqFk1k4FV/w=';
$_POST['sign'] = 'KFlg4VX6FTVaJ4aTCK60xvTfpNXaBz2CTGYkKXFZrC7u/aUMtoWDKCHpjfr38kygkKtoPkHLYsx1/lB7gjGbA7CdGXNbWMpYijYWL1xOn6hP+k3RZFp3rDUsEB5Zu8wTql6UgfH/8rhIbOqa5CY9SOzKwrL9KzM9v8TzpbxOr3E=';*/
$page_name = "pay_jd";
require_once("../show/common.php");
require_once("../show/mall_jd.php");
$GLOBALS['in_page'] = 1;
$GLOBALS['in_page_func'] = "jdGetHTML";
function pe1($s) {
print_r($s);exit;
}
$companyList = $db->get_all("select * from tb_company where jd_wg_key is not null and jd_wg_key != ''");
$data = '';
$companyId = 0;
$supply_id = 0;
foreach($companyList as $item) {
$jd_wg_key = $item['jd_wg_key'];
$a = explode("##", $jd_wg_key);
if(count($a) != 3) continue;
$publickeyData = "-----BEGIN PUBLIC KEY-----\n".implode("\n", str_split($a[0], 70))."\n-----END PUBLIC KEY-----\n";
$privatekeyData = "-----BEGIN PRIVATE KEY-----\n".implode("\n", str_split($a[1], 70))."\n-----END PRIVATE KEY-----\n";
$accessKey = $a[2];
$data = jd_verify($_POST);
if($data) {
$companyId = $item['id'];
$supply_id = $item['jd_wg_supply_id'];
break;
}
}
$data = jd_verify($_POST);
if(!$data) {
echoRs(0, '签名错误!');
}
$supplyInfo = $db->get_one("select * from tb_goods_supply where id = '{$supply_id}'");
$supplier_id = $supplyInfo['supplier_id'];
$uid = trim($data['uid']);
$orderId = trim($data['orderId']);
$totalMoney = floatval($data['totalMoney']);
$freight = floatval($data['freight']);
//$totalMoney = 100000;
$s1 = print_r($_POST, 1);
$s2 = print_r($data, 1);
file_put_contents("wg_log.txt", $uid."_".$orderId.": ".$s1."\n\n".$s2."\n\n\n\n", FILE_APPEND);
if(strpos($uid, "yzmsdc_") === 0) $uid = str_replace('yzmsdc_', '', $uid);
$uid = intval($uid);
$user = $db->get_one("select * from tb_user where id = {$uid} and enabled != 0");
if(!$user) {
echoRs(0, '用户不存在!');
}
$wgOrderInfo = $db->get_one("select * from tb_goods_wg_order where orderId = '{$orderId}'");
if($wgOrderInfo) {
$order_id = $wgOrderInfo['id'];
$status = $wgOrderInfo['status'];
$totalMoney2 = $wgOrderInfo['totalMoney'];
if($status == 1) {
echoRs(0, '该订单已支付!');
} else if($status == 2) {
echoRs(0, '该订单已取消!');
} else if($status != 0) {
echoRs(0, '出错!');
}
if(!money_equal($totalMoney, $totalMoney2)) {
echoRs(0, '出错2');
}
} else {
$orderDetail = jd_get_order_detail($orderId);
if(!$orderDetail) {
echoRs(0, '查询订单错误!');
}
//print_r($orderDetail);exit;
$skuList = $orderDetail['skuList'];
$childOrderList = $orderDetail['childOrderList'];
$total_num = 0;
foreach($skuList as $item) {
$total_num += intval($item['num']);
}
$db->query("insert into tb_goods_wg_order set uid = {$uid}, orderId = '{$orderId}', totalMoney = {$totalMoney}, freight = {$freight}, total_num = {$total_num}, status = '0', jd_state = '".addslashes($orderDetail['state'])."', jd_orderState = '".addslashes($orderDetail['orderState'])."', submitState = '".addslashes($orderDetail['submitState'])."', submitType = '".addslashes($orderDetail['submitType'])."', name = '".addslashes($orderDetail['name'])."', address = '".addslashes($orderDetail['address'])."', phone = '".addslashes($orderDetail['phone'])."', mobile = '".addslashes($orderDetail['mobile'])."', created = '".addslashes($orderDetail['created'])."', jdOrderState = '".addslashes($orderDetail['jdOrderState'])."', provinceName = '".addslashes($orderDetail['provinceName'])."', cityName = '".addslashes($orderDetail['cityName'])."', countyName = '".addslashes($orderDetail['countyName'])."', townName = '".addslashes($orderDetail['townName'])."', addtime = now()", 'SILENT');
if($db->affected_rows() != 1) {
echoRs(0, '下单失败!');
}
$order_id = $db->insert_id();
$wgOrderInfo = $db->get_one("select * from tb_goods_wg_order where id = ".$order_id);
foreach($skuList as $item) {
$db->query("insert into tb_goods_wg_order_skus set order_id = {$order_id}, orderId = '{$orderId}', childOrderId = '{$childOrderId}', skuId = '".addslashes($item['skuId'])."', num = ".intval($item['num']).", price = ".floatval($item['price']).", name = '".addslashes($item['name'])."', imgUrl = '".addslashes($item['imgUrl'])."', addtime = now()");
}
}
$row = $db->get_one("select sum( account ) as c from tb_account where user_id = '{$uid}' and (supplier_id = {$supplier_id} or supplier_id=0)");
$checkye = floatval($row['c']);
if(round($checkye*100) < round($totalMoney*100)) {
echoRs(0, '余额不足!');
}
$row = $db->get_one("select * from tb_goods_order where uid = {$uid} and jdwg_id = {$order_id}");
if($row) {
$oid = $row['id'];
if($row['state'] != 0) {
echoRs(0, '确认订单失败!');
}
} else {
$code = get_code("tb_goods_order", "code", 5, 'num', date("Ymd")."M");
$db->query("insert into tb_goods_order set code = '{$code}', state = '0', uid = {$uid}, total_num = ".$wgOrderInfo['total_num'].", total_price = ".($totalMoney-$wgOrderInfo['freight']).", `addtime` = now(), deliver_type = '2', link_user = '".addslashes($wgOrderInfo['name'])."', link_phone = '".dbenc(addslashes($wgOrderInfo['mobile']))."', link_province = '".addslashes($wgOrderInfo['provinceName'])."', link_city = '".addslashes($wgOrderInfo['cityName'])."', link_area = '".addslashes($wgOrderInfo['countyName'])."', link_addr = '".dbenc(addslashes($wgOrderInfo['address']))."', confirm_id = '0', mailfee = ".$wgOrderInfo['freight'].", take_place_id = '0', supply_id = '".$supply_id."', tip_count = '0', notes = null, is_print = '0', jdwg_id={$order_id}", 'SILENT');
if($db->affected_rows() != 1) {
echoRs(0, '支付失败,请重试!');
}
$oid = $db->insert_id();
}
if(isset($user) && $user['company_id'] != '30'){
require_once("../show/include/pay.inc.php");
}
$rList = array();
$kkfrom = '';
$rList[] = array('ac' => $totalMoney, 'rtype' => 7, 'oid' => $oid, 'supplier_id' => $supplier_id, 'kkfrom' => $kkfrom, 'consume_source' => 'mall');
$r = gpay_pay_user_account($uid, $rList, $updateInfo);
if($r != 'suc') {
$db->query("delete from tb_goods_order where id=".$oid);
echoRs(0, '扣款失败!');
}
$db->query("update tb_goods_order set state=1 where id=".$oid);
$rs = jd_confirm_order($orderId);
if(!$rs) {
echoRs(0, '确认订单失败,请重试!');
}
if($rs['success']) {
$db->query("update tb_goods_wg_order set status=1 where id=".$order_id);
} else {
echoRs(0, '确认订单失败:'.$rs['resultMessage']);
}
$data = array(
'type' => '1',
'wg_order_id' => $order_id,
'order_id' => $oid,
);
//$sms = "[佛山电信商城系统]你好,你的商城订单{$code}已经下单成功,货物会以快递方式邮寄给你,".($freight>0?("邮费".$freight."元,"):"")."请留意短信息提醒。";
//send_sms($user['cellphone'], $sms);
echoRs(1, '下单成功!', array('data' => $data));
function jdGetHTML() {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<script type="text/javascript" src="/show/js/func.js"></script>
<script type="text/javascript">
function jdAlert(str, func) {
try {
if(func) window.parent.$.alert(str, func);
else window.parent.$.alert(str);
} catch (e) {
alert(str);
if(func) func();
}
}
function gotoPage(page) {
/*try {
window.parent.$.router.replacePage(page);
} catch (e) {
var url = "https://dc.fsecity.com/m/" + page;
try {
window.parent.location.href = url;
} catch (e) {
location.href = url;
}
}*/
var url = "https://yzms.fsecity.com/m/" + page;
try {
window.parent.location.href = url;
} catch (e) {
location.href = url;
}
}
function promptAlertSuccess(msg) {
var arguments = { msg: msg };
var type = "JSbridge";
var functionName = "alertSuccess";
var data = { "type": type, "functionName": functionName, "arguments": arguments };
prompt(JSON.stringify(data));
}
function promptAlertError(msg) {
var arguments = { msg: msg };
var type = "JSbridge";
var functionName = "alertError";
var data = { "type": type, "functionName": functionName, "arguments": arguments };
prompt(JSON.stringify(data));
}
function closeNewWeb() {
var arguments = {};
var type = "JSbridge";
var functionName = "closeNewWeb";
var data = { "type": type, "functionName": functionName, "arguments": arguments };
prompt(JSON.stringify(data));
}
function recvRs(rs) {
/*var url1 = location.href + "";
var url2 = url1;
if(window.parent) url2 = window.parent.location.href;
var wd = window;
if(url1 != url2) wd = window.parent;*/
var ua = navigator.userAgent.toLowerCase();
var isiosnew = (typeof window.webkit !== 'undefined');
var isios = false;
if(ua.indexOf("iphone") != -1 || ua.indexOf("ipad") != -1 || ua.indexOf("ipad") != -1 || isiosnew) isios = true;
if(rs.status == 1) {
var order_id = rs.data.order_id;
if(isios) {
if(isiosnew) {
setTimeout(function () {
promptAlertSuccess("下单成功!");
setTimeout(function () {closeNewWeb();}, 2000);
}, 100);
} else if(typeof(iosJs) == 'undefined') {
alert("下单成功!");
location.href = "ftdc://";
}
} else {
gotoPage("shop-thisOrder.html?type=1&fromjd=1&oid=" + encodeURIComponent('[{"orderid":"'+order_id+'"}]'));
}
} else {
if(isiosnew) {
setTimeout(function () {
promptAlertError(rs.message);
setTimeout(function () {closeNewWeb();}, 2000);
}, 100);
} else {
jdAlert(rs.message, function() {
if(isios && typeof(iosJs) == 'undefined') {
//window.parent.location.href = "ftdc://";
location.href = "ftdc://";
} else {
gotoPage("shop-index.html");
}
});
}
}
}
</script>
</head>
<body>
</body>
</html>
<?
}