fix: submit 改为 AJAX POST 到 buy/add,base64 编码 goods_data,修复非法访问错误
- ticket_detail.html: form.submit() → jQuery AJAX POST - 改为 POST 到 ?s=buy/add(直接走 OrderInsert) - goods_data 用 CryptoJS.base64 编码(ShopXO BuyGoods 期望格式) - 显式传 buy_type=goods, address_id=0, site_model=2 - 成功跳转 jump_url,code=-400 走登录页,失败 alert 提示 - footer.html: 追加 base64csvtojson.js + common.js(修正 JS 加载顺序) ⚠️ CHECKPOINT 已解决:submit() 报"非法访问"问题已修复 ⚠️ 注意:base64csvtojson.js 由 ShopXO Docker 容器生成,需同步到 public/static/ ⚠️ Phase 3 待完成:订单确认页/支付/观演人信息存储pull/19/head
parent
a97e5fd0d3
commit
6688a10d95
|
|
@ -69,3 +69,9 @@ $security_desc = $shopxo_config['security_desc'] ?? '';
|
|||
<?php echo Config('shopxo.is_close_website_footer_js') != 1 ? '<script src="' . Config('shopxo.host_url') . 'static/common/js/footer.js?v=' . ($shopxo_config['version'] ?? '1.0.0') . '"></script>' : ''; ?>
|
||||
<script type='text/javascript'
|
||||
src="<?php echo Config('shopxo.host_url'); ?>static/common/lib/jquery/jquery-2.2.4.min.js"></script>
|
||||
<!-- ⚠️ CryptoJS 定义文件,必须先于 common.js 引入 -->
|
||||
<script type='text/javascript'
|
||||
src="<?php echo Config('shopxo.host_url'); ?>static/common/lib/base64/base64csvtojson.js"></script>
|
||||
<!-- ⚠️ 引入 common.js -->
|
||||
<script type='text/javascript'
|
||||
src="<?php echo Config('shopxo.host_url'); ?>static/common/js/common.js"></script>
|
||||
|
|
@ -475,19 +475,32 @@
|
|||
return;
|
||||
}
|
||||
|
||||
// 5. 隐藏表单 POST 到 ShopXO Buy 链路
|
||||
var form = document.createElement('form');
|
||||
form.method = 'POST';
|
||||
form.action = requestUrl + '?s=index/buy/index';
|
||||
document.body.appendChild(form);
|
||||
|
||||
var input = document.createElement('input');
|
||||
input.type = 'hidden';
|
||||
input.name = 'goods_data';
|
||||
input.value = JSON.stringify(goodsDataList); // 直接 JSON,BuyService 自动处理
|
||||
form.appendChild(input);
|
||||
|
||||
form.submit(); // POST → Buy::Index → BuyDataStorage → 跳转确认页
|
||||
// 5. AJAX POST 到 ShopXO Buy 链路
|
||||
$.ajax({
|
||||
url: requestUrl + '?s=buy/add&system_type=default',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
goods_data: encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(goodsDataList)))),
|
||||
buy_type: 'goods',
|
||||
address_id: '0',
|
||||
site_model: '2'
|
||||
},
|
||||
success: function(ret) {
|
||||
if (ret.code === 0) {
|
||||
// 成功,跳转到支付或订单页
|
||||
window.location.href = ret.data.jump_url || ret.data.order_id;
|
||||
} else if (ret.code === -400 && ret.data) {
|
||||
// 未登录,跳转到登录页
|
||||
window.location.href = ret.data;
|
||||
} else {
|
||||
alert(ret.msg || '提交订单失败');
|
||||
}
|
||||
},
|
||||
error: function(xhr) {
|
||||
alert('网络错误: ' + (xhr.responseText || '请求失败'));
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
bindEvents: function() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue