|
本帖最后由 chenyoucai 于 2017-6-12 10:14 编辑
有时用户支付成功后app前端会执行成功后的代码,但有时用户支付成功后app前端却不执行成功后的代码,支付宝和微信都会出现这个问题,而且这个问题发生的概率很大,急!!!!!!
用户支付成功后,到我们公司的微信或支付宝账户中看,确实收到用户的钱了,而且服务器也收到了微信和支付宝的异步通知了,所以我们判断用户确实是支付成功了。
我们的支付逻辑是:用户支付成功后,前端会发消息到服务器验证支付结果,验证成功后会返回付费内容给用户,但是发现后台没有收到验证消息,用户也没看到付费内容,所以判断是前端没有执行代码支付成功后的代码。
下面是代码:
微信的代码是:
var tradeNo = justep.UUID.createUUID();//通常是交易流水号
var notifyUrl = location.origin + "/baas/weixin/weixin/notify";
var weixin = navigator.weixin;
weixin.generatePrepayId({
"body" : self.productname.get(),//支付显示名称
//mchId : "",//微信公众号的商户号,app内支付不需填写
"feeType" : "1",
"notifyUrl" : notifyUrl,//支付成功通知地址
"totalFee" : self.fee.get()*100,//总金额(单位分)
"traceId" : "DZJ",
"tradeNo" : tradeNo//订单号
}, function(prepayId) {
weixin.sendPayReq(prepayId, function(message) {
var responseCode = parseInt(message);
if (responseCode === 0) {
//支付成功后的代码
...
} else if (!isNaN(responseCode)) {
//取消
justep.Util.hint("微信取消支付");
} else {
justep.Util.hint("微信支付失败!");
}
}, function(message) {
justep.Util.hint("微信支付失败!");
});
}, function(message) {
justep.Util.hint("微信支付失败!");
});
支付宝的代码是:
var tradeNo = justep.UUID.createUUID();
var notifyUrl = address.getAddress("payzhifubao");
var alipay = navigator.alipay;
var detail = self.productdetail.get();// 商品详情
alipay.pay({
"seller" : "***我们的支付宝账号***", // 卖家支付宝账号或对应的支付宝唯一用户号
"subject" : self.productname.get(), // 商品名称
"body" : detail, // 商品详情
"price" : self.fee.get(), // 金额,单位为RMB
"tradeNo" : tradeNo, // 唯一订单号
"timeout" : "30m", // 超时设置
"notifyUrl" : notifyUrl
}, // 服务器通知路径
function(message) {
var responseCode = parseInt(message);
if (responseCode === 9000) {
//支付成功后的代码
...
} else if (!isNaN(responseCode)) {
//取消支付
justep.Util.hint("支付宝取消支付");
} else {
justep.Util.hint("支付宝支付失败");
}
}, function(msg) {
justep.Util.hint("支付宝支付失败");
});
请问是什么原因啊????急!!!!
谢谢!!!
补充:据用户反应,支付成功后没有看到付费内容,再支付一次,就能看到付费内容了。
同一个人、同一个手机,两次支付后却不一样,这怎么查啊??
|
|