起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5588|回复: 19

[结贴] 微信公众号支付的一些问题

[复制链接]

26

主题

128

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
发表于 2017-5-23 14:21:47 | 显示全部楼层 |阅读模式
本帖最后由 wangguangfan 于 2017-5-23 14:26 编辑
  1. </blockquote></div><div><div class="blockcode"><blockquote>        //微信支付
  2.         /**  
  3.                 -23 当前环境不支持微信支付
  4.                   -20 微信支付失败
  5.                 var payDtd = $.Deferred();获取延迟对象的,用来处理异步请求后的逻辑处理
  6.          */
  7.         Model.prototype.payOrderByWeixinJSSDK = function(payDtd, orderID,amount) {
  8.                 if (!navigator.WxApi) {
  9.                         payDtd.reject(-33);
  10.                         return false;
  11.                 }
  12.                 var tradeNo = orderID;
  13.                 amount = amount * 100;
  14.                 var notifyUrl = location.origin + "/baas/weixin/weixin/notify";
  15.                 this.wxApi.chooseWXPay({
  16.                         body : "本地服务微购",
  17.                         mchId : "1439199202",
  18.                         notifyUrl : notifyUrl,
  19.                         outTradeNo : tradeNo,
  20.                         totalFee : amount
  21.                 }).done(function() {
  22.                         payDtd.resolve(2);
  23.                 }).fail(function() {
  24.                         payDtd.reject(-20);
  25.                 });
  26.         };

  27.         Model.prototype.payBtnClick = function(event){
  28.                 var payDtd = $.Deferred();
  29.                 var orderData = this.comp("orderData");
  30.                 var couponData = this.comp("couponData");
  31.                 var orderID = justep.UUID.createUUID();
  32.                 if(this.totalAmount != 0){
  33.                         this.payOrderByWeixinJSSDK(payDtd, orderID,this.totalAmount);
  34.                 }else if(this.totalAmount === 0){
  35.                         payDtd.resolve(0);
  36.                 }else{
  37.                         payDtd.reject(0);
  38.                 }
  39.                
  40.                 if(this.totalAmount == 0){
  41.                         Baas.sendRequest({
  42.                                 "url" : "/onebuyBaas/oneBuy",
  43.                                 "action" : "updateOrderState",
  44.                                 "async" : false,
  45.                                 "params" : {
  46.                                         "oid" : orderData.val("id"),
  47.                                         "statue":"PLAYED",
  48.                                         "couponData" : couponData.toJson({format:"simple"})
  49.                                 },
  50.                                 "success" : function(data) {
  51.                                         justep.Util.hint("支付成功!");
  52.                                         orderData.refreshData();
  53.                                 }
  54.                         });
  55.                 }else{
  56.                         var pay = payDtd.promise();
  57.                         pay.always(function(code) {
  58.                                 if(code == 2){
  59.                                         Baas.sendRequest({
  60.                                                 "url" : "/onebuyBaas/oneBuy",
  61.                                                 "action" : "updateOrderState",
  62.                                                 "async" : false,
  63.                                                 "params" : {
  64.                                                         "oid" : orderData.val("id"),
  65.                                                         "statue":"PLAYED",
  66.                                                         "couponData" : couponData.toJson({format:"simple"})
  67.                                                 },
  68.                                                 "success" : function(data) {
  69.                                                         justep.Util.hint("支付成功!");
  70.                                                         orderData.refreshData();
  71.                                                 }
  72.                                         });
  73.                                 }
  74.                         }).fail(function(code) {
  75.                                 justep.Util.hint("支付遇到问题!");
  76.                         });
  77.                 }
  78.         };
复制代码
QQ截图20170523142608.png

红色圈起这部分有时候成功支付后会没有执行进去,但是大多数都是可以执行进去的,不知道我的这个写法有没有什么问题?

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-5-23 16:25:06 | 显示全部楼层
http://docs.wex5.com/cordova-plugin-weixin/
http://docs.wex5.com/wex5-app-question-list-2048/
另外参考外卖案例的WxMpServiceInstance.java和外卖的代码
回复 支持 反对

使用道具 举报

26

主题

128

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
 楼主| 发表于 2017-5-23 17:42:20 | 显示全部楼层
半导体 发表于 2017-5-23 16:25
http://docs.wex5.com/cordova-plugin-weixin/
http://docs.wex5.com/wex5-app-question-list-2048/
另外参 ...

我现在是可以正常支付,就是在支付完成后的里面好像有时没有调用里面的代码
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-5-24 09:41:24 | 显示全部楼层
wangguangfan 发表于 2017-5-23 17:42
我现在是可以正常支付,就是在支付完成后的里面好像有时没有调用里面的代码 ...

那建议你真机调试看下!代码执行过程中,执行成功和失败时,变量参数有何差异??
http://docs.wex5.com/wex5-app-question-list-2048
回复 支持 反对

使用道具 举报

26

主题

128

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
 楼主| 发表于 2017-5-24 10:18:36 | 显示全部楼层
半导体 发表于 2017-5-24 09:41
那建议你真机调试看下!代码执行过程中,执行成功和失败时,变量参数有何差异??
http://docs.wex5.com/ ...

我这个不是APP   只是在微信里面的
回复 支持 反对

使用道具 举报

26

主题

128

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
 楼主| 发表于 2017-5-24 10:33:14 | 显示全部楼层
半导体 发表于 2017-5-24 09:41
那建议你真机调试看下!代码执行过程中,执行成功和失败时,变量参数有何差异??
http://docs.wex5.com/ ...

主要是大多数是可以执行到成功支付回调里面的代码的,只是偶尔没有执行进去,所以不知道我那种写法对不对。
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-5-24 13:20:17 | 显示全部楼层
wangguangfan 发表于 2017-5-24 10:33
主要是大多数是可以执行到成功支付回调里面的代码的,只是偶尔没有执行进去,所以不知道我那种写法对不对 ...

关键是你都支付成功了啊  只是偶尔不成功他能错在哪?  他要是错了不是根本就不能执行吗?
回复 支持 反对

使用道具 举报

26

主题

128

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
 楼主| 发表于 2017-5-26 16:46:11 | 显示全部楼层
半导体 发表于 2017-5-24 13:20
关键是你都支付成功了啊  只是偶尔不成功他能错在哪?  他要是错了不是根本就不能执行吗? ...

这个我也不知道啊  为什么会出现这种情况?
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-5-26 17:12:20 | 显示全部楼层
wangguangfan 发表于 2017-5-26 16:46
这个我也不知道啊  为什么会出现这种情况?

你的是always方法执行了  但是code值不是总是等于2   这个在外卖案例里面有个payorder方法return的code了

你的是那个方法  跟下那个方法的代码
回复 支持 反对

使用道具 举报

26

主题

128

帖子

522

积分

高级会员

Rank: 4

积分
522
QQ
 楼主| 发表于 2017-5-27 17:20:09 | 显示全部楼层
半导体 发表于 2017-5-26 17:12
你的是always方法执行了  但是code值不是总是等于2   这个在外卖案例里面有个payorder方法return的code了 ...

K5%L[QQ%N3G3SHQY_7T[ZSI.png 我看这个里面的那个支付和我仿外卖下面这个有点不一样,上面那个没有下边这样定义的。
VR@UXH0HU0VDAS9(5[`P2QY.png

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-9 17:58 , Processed in 0.068878 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表