Commit da16d384 authored by gaodapeng's avatar gaodapeng

fix bugs

parent 7debfeaa
......@@ -10,5 +10,5 @@ export const API_CREATE_ORDER = "order/create";
export const API_PAY = "pay/micropay";
//查询支付结果
export const API_QUERY = "order/query";
//退款接口
export const API_REFUND = "order/refund";
\ No newline at end of file
var api = require("../../utils/api.js");
var payUtils = require("../../utils/payUtils.js");
import { ACTION_GO_SCAN } from '../../const/actioncmd'
import { ACTION_GO_SCAN, ACTION_GO_HOME } from '../../const/actioncmd'
import { ACTION_ON_PAY_SUCCESS } from '../../const/actioncmd'
import { ACTION_ON_PAY_FAILED } from '../../const/actioncmd'
Page({
data: {
goodsNum:0,
payPrice:0.00,
totalPrice:0.00,
couponPrice:0.00,
qrPayShow:false,
list:[],
orderNo:"",
isCashierClosed:false,
goodsNum: 0,
payPrice: 0.00,
totalPrice: 0.00,
couponPrice: 0.00,
qrPayShow: false,
list: [],
orderNo: "",
isCashierClosed: false,
isPaying: false,
},
onLoad(options) {
......@@ -21,7 +21,7 @@ Page({
var totalPrice = options.totalPrice
var totalDisc = options.totalDisc
this.setData({
list:options.goods,
list: options.goods,
});
if (totalQuantity != null) {
......@@ -46,7 +46,7 @@ Page({
success: function (res) {
console.log("商品信息 ===》 " + JSON.stringify(res));
context.setData({
list:res.data
list: res.data
})
},
fail: function (res) {
......@@ -59,15 +59,18 @@ Page({
},
onShow(){
onShow() {
my.ix.onBuddyMessage({
success: (res) => {
console.info(`onBuddyMessage success: ${JSON.stringify(res)}`);
if(res.action == ACTION_GO_SCAN){//返回扫码页
if (res.action == ACTION_GO_SCAN) {//返回扫码页
//增加跳转回去的内容
my.navigateBack();
} else {
//未知指令
} else if (res.action == ACTION_GO_HOME) {
//去首页
my.reLaunch({
url: "/pages/home/home",
});
}
}
});
......@@ -83,19 +86,19 @@ Page({
* @todo 支付结果的获取
* @todo 跳转数据的保存
*/
startPay(){
startPay() {
//开始loading
my.showLoading({});
//获取order
var payAmount = payUtils.yuan2Fen(this.data.payPrice);
payUtils.getOrder(/*payAmount*/1,this.data.list, function(res){
if(res != null){
payUtils.getOrder(/*payAmount*/1, this.data.list, function (res) {
if (res != null) {
console.log("callback调用,res=" + JSON.stringify(res));
if(res.resultCode ==1){
if (res.resultCode == 1) {
this.setData({
orderNo:res.data
orderNo: res.data
});
this.payWithOpenCashier(res.data);
}
......@@ -106,8 +109,8 @@ Page({
/**
* 打开收银台,进行扫码收款
*/
payWithOpenCashier(){
try{
payWithOpenCashier() {
try {
console.info("收银台版本" + my.ix.getVersionSync({
packageName: 'zoloz.phone.android.alipay.com.dragonfly'
}).versionName);
......@@ -125,7 +128,7 @@ Page({
this.data.isCashierClosed = true;
this.doPay(this.data.orderNo, res.barCode);
}
},fail:(res) => {
}, fail: (res) => {
my.showToast({
type: 'exception',
content: api.decodeErrorMessage(res.error),
......@@ -166,29 +169,29 @@ Page({
else
console.log('RESULT: ' + res.bizType);
});
} catch(err) {
} catch (err) {
console.log("收银台启动回调 异常==>" + JSON.stringify(err));
}
},
//调用收款接口
//调用收款接口
doPay(orderNo, payCode) {
console.log("doPay调用");
this.setData({isPaying:true});
this.setData({ isPaying: true });
//使用barCode来当面付
var payAmount = payUtils.yuan2Fen(this.data.payPrice);
payUtils.startPay(orderNo, payCode, /*payAmount*/1, this.data.list, function(res){
payUtils.startPay(orderNo, payCode, /*payAmount*/1, this.data.list, function (res) {
my.hideLoading();
console.log("支付回调 ===>" + JSON.stringify(res));
this.setData({isPaying:false});
if(res == null){
this.setData({ isPaying: false });
if (res == null) {
return;
}
if(res.resultCode == 1){
if (res.resultCode == 1) {
//成功
console.log("支付回调成功,跳转 " );
console.log("支付回调成功,跳转 ");
// if(data.isCashierClosed == true){
my.ix.offCashierEventReceive();
this.saveData(this.data.list, res.data);
......
var api = require("../../utils/api.js");
import { Page } from '../../utils/scan';
import { API_USE_COUPON } from '../../const/apiurl'
import { API_REFUND } from '../../const/apiurl'
import { ACTION_GO_SCAN } from '../../const/actioncmd'
import { ACTION_GET_ACCOUNT } from '../../const/actioncmd'
import { ACTION_DIRECT_PAYMENT } from '../../const/actioncmd'
......@@ -10,7 +11,6 @@ import { ACTION_REFUND } from '../../const/actioncmd'
import { ACTION_REFUND_FAILED } from '../../const/actioncmd'
import { ACTION_REFUND_SUCCESS } from '../../const/actioncmd'
import { ACTION_PRINT_LAST_ORDER } from '../../const/actioncmd'
import { API_REFUND } from '../../const/apiurl'
Page({
......@@ -118,6 +118,7 @@ Page({
dialogResultFailureRemind: "退款失败",
dialogResultFailureText: "退款失败!无效的订单码",
});
console.log("ACTION_REFUND");
} else if (res.action == ACTION_GO_HOME) {
//home界面收到,则返回界面上
......@@ -315,13 +316,7 @@ Page({
});
},
//增加扫码内容,以及退款等操作的内容
onKeyPress(r) {
//只有在弹窗出现时才扫码
if (this.data.scanDialogDisplay > 0) {
this.refund(r);
}
},
//退款
refund(barcode) {
......@@ -402,4 +397,5 @@ Page({
});
var api = require("../../utils/api.js");
import { Page } from '../../utils/scan';
import {API_SCAN} from '../../const/apiurl'
import {API_USE_COUPON} from '../../const/apiurl'
import { API_SCAN } from '../../const/apiurl'
import { API_USE_COUPON } from '../../const/apiurl'
import { ACTION_GOODS } from '../../const/actioncmd'
import { ACTION_REQUEST_GOOD_INFO } from '../../const/actioncmd'
import { ACTION_GO_BALANCE } from '../../const/actioncmd'
......@@ -13,14 +13,14 @@ Page({
//单位是元
totalPrice: 0.00,
totalQuantity: 0,
totalDisc:0.00,
memberPhone:'',
memberPoint:0
totalDisc: 0.00,
memberPhone: '',
memberPoint: 0
},
onLoad: function (options) {
var barcode = options.barcode
if(barcode != null){
if (barcode != null) {
console.log("首页传递过来的商品条码是 " + barcode);
this.getGoodInfoByBarcode(barcode)
}
......@@ -45,24 +45,10 @@ Page({
} else if (res.action == ACTION_GO_BALANCE) {
//去结算页面
context.goBalance();
my.ix.sendBuddyMessage({
target: getApp().globalData.backScreenAppId,
data: {
action: ACTION_GO_BALANCE,
data:null
},
success: (res) => {
console.log("发送商品数据到后屏小程序成功 ===》"+JSON.stringify(res));
},
fail: (res) => {
console.log("发送商品数据到后屏小程序 失败 ===》 "+JSON.stringify(res));
//发送失败重试
}
})
}else if(res.action == ACTION_REQUEST_GOOD_INFO){
} else if (res.action == ACTION_REQUEST_GOOD_INFO) {
//去结算页面
context.getGoodInfoByBarcode(res.data);
}else if(res.action == ACTION_GO_HOME){
} else if (res.action == ACTION_GO_HOME) {
//去首页
my.reLaunch({
url: "/pages/home/home",
......@@ -140,9 +126,9 @@ Page({
//价格 分转元
goodinfo.quantity = 1;
goodinfo.price = goodinfo.price/100
goodinfo.salePrice = goodinfo.salePrice/100
goodinfo.discnt = goodinfo.discnt/100
goodinfo.price = goodinfo.price / 100
goodinfo.salePrice = goodinfo.salePrice / 100
goodinfo.discnt = goodinfo.discnt / 100
//总数量
let totalQuantityTemp = 0
......@@ -155,27 +141,27 @@ Page({
let goodstemp = []
let goodtemp
lastgoods.forEach(function (item, index, array) {
if(item.barcode == goodinfo.barcode){
if (item.barcode == goodinfo.barcode) {
let quantitytemp = item.quantity
item.quantity = quantitytemp+1
item.quantity = quantitytemp + 1
isHasSame = true
goodtemp = item
}else{
} else {
totalQuantityTemp = totalQuantityTemp + item.quantity
totalPriceTemp = totalPriceTemp + item.price*item.quantity
totalPriceTemp = totalPriceTemp + item.price * item.quantity
goodstemp.push(item)
}
})
if(isHasSame){
if (isHasSame) {
totalQuantityTemp = totalQuantityTemp + goodtemp.quantity
totalPriceTemp = totalPriceTemp + goodtemp.price*goodtemp.quantity
totalPriceTemp = totalPriceTemp + goodtemp.price * goodtemp.quantity
let nowgoods = []
nowgoods.push(goodtemp);
var newgoods = nowgoods.concat(goodstemp)
this.setData({ goods: newgoods })
}else{
} else {
totalQuantityTemp = totalQuantityTemp + 1
totalPriceTemp = totalPriceTemp + goodinfo.price
let nowgoods = []
......@@ -185,7 +171,8 @@ Page({
}
//汇总
this.setData({ totalQuantity: totalQuantityTemp,
this.setData({
totalQuantity: totalQuantityTemp,
totalPrice: totalPriceTemp,
})
......@@ -197,18 +184,18 @@ Page({
sendGoodInfoToBack() {
let context = this;
var commonRequest = {
action:ACTION_GOODS,
data:this.data
action: ACTION_GOODS,
data: this.data
};
my.ix.sendBuddyMessage({
target: getApp().globalData.backScreenAppId,
data: commonRequest,
success: (res) => {
console.log("发送商品数据到后屏小程序成功 ===》"+JSON.stringify(res));
console.log("发送商品数据到后屏小程序成功 ===》" + JSON.stringify(res));
},
fail: (res) => {
console.log("发送商品数据到后屏小程序 失败 ===》 "+JSON.stringify(res));
console.log("发送商品数据到后屏小程序 失败 ===》 " + JSON.stringify(res));
//发送失败重试
context.sendGoodInfoToBack();
}
......
var api = require("/utils/api.js");
import{API_CREATE_ORDER} from '/const/apiurl'
import{API_PAY} from '/const/apiurl'
import{API_QUERY} from'/const/apiurl'
import { API_CREATE_ORDER } from '/const/apiurl'
import { API_PAY } from '/const/apiurl'
import { API_QUERY } from '/const/apiurl'
/**
* tradeAmount int
......@@ -20,13 +20,14 @@ function getOrder(
tradeAmount,
list,//物品列表
callback
){
) {
// if (checkGoodsList(list) != true) {
// console.log("物品列表不是数组");
// callback({ resultCode: -1, message: "物品列表不是数组" });
// return;
// }
if(checkGoodsList(list) != true){
console.log("物品列表不是数组");
callback({resultCode:-1,message:"物品列表不是数组"});
return
}
var app = getApp();
var orderCreateRequest = api.createCommonRequest();
if (app.globalData.localAccountInfo != null) {
......@@ -36,9 +37,9 @@ function getOrder(
orderCreateRequest.deviceType = "ALIPAY";
orderCreateRequest.list = list;
orderCreateRequest.batchNo = "" + Date.parse(new Date());
console.log("请求创建订单 ==>" +JSON.stringify(orderCreateRequest));
console.log("请求创建订单 ==>" + JSON.stringify(orderCreateRequest));
var orderUrl = getApp().globalData.BASE_URL + API_CREATE_ORDER;
console.log("createOrderUrl"+orderUrl);
console.log("createOrderUrl" + orderUrl);
my.request({
url: orderUrl,
method: 'POST',
......@@ -49,23 +50,23 @@ function getOrder(
//判断返回值
if (res.data.success != true) {
console.log("创建订单接口返回失败 ==>" + JSON.stringify(res.data));
callback({resultCode:-1,message:"获取订单号失败"});
callback({ resultCode: -1, message: "获取订单号失败" });
} else {
if(res.data.data != null){//返回值有效
var response = {resultCode:1,message:"获取订单号成功",data:res.data.data};
if (res.data.data != null) {//返回值有效
var response = { resultCode: 1, message: "获取订单号成功", data: res.data.data };
callback(response);
}
console.log("创建订单成功 ==>" + JSON.stringify(res));
}
},
fail: (res) => {
console.log("创建订单接口调用失败 ==>" + JSON.stringify(res)+"\terror:"+res.error);
console.log("创建订单接口调用失败 ==>" + JSON.stringify(res) + "\terror:" + res.error);
my.showToast({
type: 'exception',
content: api.decodeErrorMessage(res.error),
duration: 2000
});
callback({resultCode:-1,message:"获取订单号失败"});
callback({ resultCode: -1, message: "获取订单号失败" });
}
});
......@@ -80,19 +81,19 @@ function getOrder(
* barcode string
*
*/
function checkGoodsList(list){
if((list instanceof Array)!==true){
function checkGoodsList(list) {
if ((list instanceof Array) !== true) {
console.log("数组判断有效");
return false;
}
if(list.length >0){
if (list.length > 0) {
var tempGoods;
for(var i=0;i<list.length;i++){
for (var i = 0; i < list.length; i++) {
tempGoods = list[i];
if(tempGoods == null){
if (tempGoods == null) {
continue;
}
if(tempGoods.price == 0||tempGoods.salePrice == 0){
if (tempGoods.price == 0 || tempGoods.salePrice == 0) {
return false;
}
}
......@@ -108,13 +109,13 @@ function checkGoodsList(list){
* quantity
* activityId
*/
function transGoodsList(originList){
function transGoodsList(originList) {
var newList = [];
var tempOldGoods;
var tempNewGoods;
for(i = 0; i < originList.length; i++) {
for (i = 0; i < originList.length; i++) {
tempOldGoods = originList[i];
if(tempOldGoods == null){
if (tempOldGoods == null) {
continue;
}
tempNewGoods = {};
......@@ -141,8 +142,8 @@ function transGoodsList(originList){
* merchantId 商户id
// * operatorId 操作员id
*/
function onPaySuccess(res, callback){
var response = {resultCode:1,message:"支付成功",data:{}};
function onPaySuccess(res, callback) {
var response = { resultCode: 1, message: "支付成功", data: {} };
//todo 返回正确数据到调用方
response.data = res;
//或者可以解析出来res的内容,然后重组发给外界
......@@ -150,8 +151,8 @@ function onPaySuccess(res, callback){
}
function startPay(tradeNo, payCode, payPrice, list, callback){
pay(tradeNo,payCode, payPrice, list, callback,0);
function startPay(tradeNo, payCode, payPrice, list, callback) {
pay(tradeNo, payCode, payPrice, list, callback, 0);
}
/**
* @todo 写支付
......@@ -170,7 +171,7 @@ function startPay(tradeNo, payCode, payPrice, list, callback){
quantity
activityId
*/
function pay(tradeNo, payCode, payPrice, list, callback, retryCount){
function pay(tradeNo, payCode, payPrice, list, callback, retryCount) {
var payRequest = api.createCommonRequest();
payRequest.tradeNo = tradeNo;
payRequest.channel = "alipay";
......@@ -182,7 +183,7 @@ function pay(tradeNo, payCode, payPrice, list, callback, retryCount){
payRequest.authCode = payCode;
payRequest.batchNo = "" + Date.parse(new Date());
var payUrl = getApp().globalData.BASE_URL + API_PAY;
console.log("pay ===> url:"+payUrl+"\t body"+JSON.stringify(payRequest));
console.log("pay ===> url:" + payUrl + "\t body" + JSON.stringify(payRequest));
my.request({
url: payUrl,
method: 'POST',
......@@ -193,19 +194,19 @@ function pay(tradeNo, payCode, payPrice, list, callback, retryCount){
console.log("支付接口回掉 ==>" + JSON.stringify(res));
//增加数据判断,增加重试
console.log("支付接口回调 ==>" + JSON.stringify(res));
if (res == null|| res.data == null|| res.data.success != true || res.data.data == null) {
if (res == null || res.data == null || res.data.success != true || res.data.data == null) {
console.log("支付未成功 ==>" + JSON.stringify(res.data.message));
retryOrFailed(tradeNo, payCode, payPrice, list, callback, retryCount);
} else {
console.log("支付返回值 ==>" + JSON.stringify(res.data));
if(res.data.data.tradeStatus == "3"){
if (res.data.data.tradeStatus == "3") {
onPaySuccess(res.data.data, callback);
} else if(res.data.data.tradeStatus == "1"){//需要查询结果
} else if (res.data.data.tradeStatus == "1") {//需要查询结果
//轮询查询,最多12次
queryPayStateWithRetry(tradeNo, callback, 0);
} else {
//查询一次
queryPayState(tradeNo,callback);
queryPayState(tradeNo, callback);
}
}
},
......@@ -226,14 +227,14 @@ function sleep(numberMillis) {
}
}
function retryOrFailed(tradeNo, payCode, payPrice, list, callback, retryCount){
if(retryCount < 12){
function retryOrFailed(tradeNo, payCode, payPrice, list, callback, retryCount) {
if (retryCount < 12) {
sleep(5000);
console.log("重试中...重试次数: ==>" + (retryCount+1));
console.log("重试中...重试次数: ==>" + (retryCount + 1));
pay(tradeNo, payCode, payPrice, list, callback, ++retryCount);
} else {
console.log("支付接口重试超限,支付失败");
var response = {resultCode:-1,message:"支付接口重试超限,支付失败"};
var response = { resultCode: -1, message: "支付接口重试超限,支付失败" };
callback(response);
}
}
......@@ -241,10 +242,10 @@ function retryOrFailed(tradeNo, payCode, payPrice, list, callback, retryCount){
/**
* 带重试的查询
*/
function queryPayStateWithRetry(tradeNo, callback, retryCount){
if(retryCount >= 12){
function queryPayStateWithRetry(tradeNo, callback, retryCount) {
if (retryCount >= 12) {
console.log("支付接口重试超限,支付失败");
var response = {resultCode:-1,message:"支付失败"};
var response = { resultCode: -1, message: "支付失败" };
callback(response);
return;
}
......@@ -253,7 +254,7 @@ function queryPayStateWithRetry(tradeNo, callback, retryCount){
queryStateRequest.batchNo = "" + Date.parse(new Date());
var queryUrl = getApp().globalData.BASE_URL + API_QUERY;
console.log("开始查询状态==> url:"+queryUrl+"\trequest:"+JSON.stringify(queryStateRequest));
console.log("开始查询状态==> url:" + queryUrl + "\trequest:" + JSON.stringify(queryStateRequest));
my.request({
url: queryUrl,
method: 'POST',
......@@ -261,22 +262,22 @@ function queryPayStateWithRetry(tradeNo, callback, retryCount){
timeout: 30000,
data: queryStateRequest,
success: (res) => {
console.log("支付结果回掉"+JSON.stringify(res));
console.log("支付结果回掉" + JSON.stringify(res));
//增加数据判断,增加重试
console.log("查询结果"+JSON.stringify(res));
if (res == null|| res.data == null|| res.data.success != true||res.data.data == null) {//不知名原因导致失败,直接报失败
console.log("查询结果" + JSON.stringify(res));
if (res == null || res.data == null || res.data.success != true || res.data.data == null) {//不知名原因导致失败,直接报失败
console.log("查询失败,支付失败");
var response = {resultCode:-1,message:"支付失败"};
var response = { resultCode: -1, message: "支付失败" };
callback(response);
} else {
if(res.data.data.tradeStatus == "3"){//成功直接报成功
onPaySuccess(res.data.data,callback);
} else if(res.data.data.tradeStatus == "1"){//需要查询结果,继续轮询
if (res.data.data.tradeStatus == "3") {//成功直接报成功
onPaySuccess(res.data.data, callback);
} else if (res.data.data.tradeStatus == "1") {//需要查询结果,继续轮询
console.log("查询结果显示支付未成功,重试 ");
sleep(5000);
queryPayStateWithRetry(tradeNo,callback, ++retryCount);
queryPayStateWithRetry(tradeNo, callback, ++retryCount);
} else {//其他状况直接报失败
var response = {resultCode:-1,message:"支付失败"};
var response = { resultCode: -1, message: "支付失败" };
callback(response);
}
}
......@@ -284,7 +285,7 @@ function queryPayStateWithRetry(tradeNo, callback, retryCount){
fail: (res) => {//接口访问失败,继续轮询
console.log("查询失败 ==>" + JSON.stringify(res));
sleep(5000);
queryPayStateWithRetry(tradeNo,callback,++retryCount);
queryPayStateWithRetry(tradeNo, callback, ++retryCount);
}
});
}
......@@ -292,12 +293,12 @@ function queryPayStateWithRetry(tradeNo, callback, retryCount){
/**
* 不带重试的查询
*/
function queryPayState(tradeNo, callback){
function queryPayState(tradeNo, callback) {
var queryStateRequest = api.createCommonRequest();
queryStateRequest.tradeNo = tradeNo;
queryStateRequest.batchNo = "" + Date.parse(new Date());
var queryUrl = getApp().globalData.BASE_URL + API_QUERY;
console.log("开始查询状态==> url:"+queryUrl+"\trequest:"+JSON.stringify(queryStateRequest));
console.log("开始查询状态==> url:" + queryUrl + "\trequest:" + JSON.stringify(queryStateRequest));
my.request({
url: queryUrl,
......@@ -307,23 +308,23 @@ function queryPayState(tradeNo, callback){
data: queryStateRequest,
success: (res) => {
//增加数据判断,增加重试
if (res == null|| res.data == null|| res.data.success != true||res.data.data == null) {//不知名原因导致失败,直接报失败
if (res == null || res.data == null || res.data.success != true || res.data.data == null) {//不知名原因导致失败,直接报失败
console.log("查询失败,支付失败");
var response = {resultCode:-1,message:"支付失败"};
var response = { resultCode: -1, message: "支付失败" };
callback(response);
} else {
console.log("查询结果 ==>" + JSON.stringify(res.data));
if(res.data.data.tradeStatus == "3"){//成功直接报成功
onPaySuccess(res.data.data,callback);
if (res.data.data.tradeStatus == "3") {//成功直接报成功
onPaySuccess(res.data.data, callback);
} else {//其他状况直接报失败
var response = {resultCode:-1,message:"支付失败"};
var response = { resultCode: -1, message: "支付失败" };
callback(response);
}
}
},
fail: (res) => {//接口访问失败,继续轮询
console.log("查询失败 ==>" + JSON.stringify(res));
var response = {resultCode:-1, message:"支付失败"};
var response = { resultCode: -1, message: "支付失败" };
callback(response);
}
});
......
......@@ -9,16 +9,16 @@ export default class scan {
if (!page._keyEventListener) {
my.ix.onKeyEventChange(page._keyEventListener = (r) => {
let cur = getCurrentPages().slice(-1)[0];
if (cur && cur.onKeyPress){
if (cur && cur.onKeyPress) {
if (isScaning == false) {
isScaning = true
code = (r.keyCode - 7)+''
code = (r.keyCode - 7) + ''
setTimeout(() => {
cur.onKeyPress.call(cur, code);
isScaning = false
}, 500);
}else{
}, 700);
} else {
//特殊处理 keycode需要减7
code = code + (r.keyCode - 7)
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment