51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1681|回复: 3
打印 上一主题 下一主题

微信支付结果回调不通,不知道为啥,有经验的帮我瞅瞅

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2022-4-14 14:35:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    问题遇到的现象和发生背景

    以前微信支付结果通知是用aspx接收的,现在要改为webapi接收,现在测试下来,接收不到,我想问一下,代码是不是有啥问题的

    1. [HttpPost]
    2. public dynamic ReceiveFromWctPayResult()
    3. {
    4. try
    5. {
    6. string strXML = string.Empty;
    7. using (StreamReader sr = new StreamReader(Request.Body, Encoding.UTF8))
    8. {
    9. strXML = sr.ReadToEndAsync().Result;
    10. }
    11.             STM_Applet applet = uow.Query<STM_Applet>().FirstOrDefault();

    12.             if (applet != null)
    13.             {
    14.                 WctPayEntity receiveWctPayEntity = new WctPayEntity();
    15.                 if (!string.IsNullOrEmpty(strXML) && receiveWctPayEntity.FromXml(strXML, true, applet.ApiKey) && receiveWctPayEntity.GetValue("return_code").ToString() == "SUCCESS")
    16.                 {
    17.                     WctAttachEntity wctAttachEntity = JsonHelper.Deserialize<WctAttachEntity>(distributedCache.GetString(receiveWctPayEntity.GetValue("attach").ToString()));
    18.                     if (wctAttachEntity != null)
    19.                     {
    20.                         Order currentOrder = uow.Query<Order>().Where(x => x.OrderNo == receiveWctPayEntity.GetValue("out_trade_no").ToString()).FirstOrDefault();

    21.                         #region 更新订单状态

    22.                         currentOrder.OrderStatus = currentOrder.OrderGoodsType == Order.OrderGoodsTypeEnum.商品 ? OrderStatus.待发货 : OrderStatus.待预约;

    23.                         #endregion 更新订单状态

    24.                         #region 更新支付流水

    25.                         List<Order_Payment> currentOrderPayments = uow.Query<Order_Payment>().Where(x => x.OrderPayNo == currentOrder.OrderNo).ToList();
    26.                         for (int i = 0; i < currentOrderPayments.Count; i++)
    27.                         {
    28.                             currentOrderPayments[i].ConfirmStatus = Order_Payment.ConfirmStatusEnum.已确认;
    29.                             currentOrderPayments[i].ConfirmTime = DateTime.Now;
    30.                             currentOrderPayments[i].PayStatus = Order_Payment.PayStatusEnum.已支付;
    31.                             currentOrderPayments[i].ModifyTime = DateTime.Now;
    32.                             currentOrderPayments[i].PayTime = Convert.ToDateTime(receiveWctPayEntity.GetValue("time_end").ToString());

    33.                             if (currentOrderPayments[i].PayType == Order_Payment.PayTypeEnum.微信)
    34.                             {
    35.                                 currentOrderPayments[i].PayMentTradeNo = receiveWctPayEntity.GetValue("transaction_id").ToString();
    36.                             }
    37.                             else
    38.                             {
    39.                                 #region 卡冻结操作记录(冻结)

    40.                                 BMS_PrepaidCard_Public currentPrepaidCardPublic = uow.FindObject<BMS_PrepaidCard_Public>(CriteriaOperator.Parse("CardCode='" + currentOrderPayments[i].PayMentTradeNo + "'"));
    41.                                 if (currentPrepaidCardPublic != null)
    42.                                 {
    43.                                     currentPrepaidCardPublic.FreezeMoney += currentOrderPayments[i].PayMoney;

    44.                                     BMS_PrepaidCard_Frozen currentPrepaidCardFrozen = new BMS_PrepaidCard_Frozen(uow);
    45.                                     currentPrepaidCardFrozen.BeforeMoney = currentPrepaidCardPublic.CardMoney;
    46.                                     currentPrepaidCardFrozen.CardCode = currentPrepaidCardPublic.CardCode;
    47.                                     currentPrepaidCardFrozen.ChipCode = currentPrepaidCardPublic.ChipCode;
    48.                                     currentPrepaidCardFrozen.CurrentMoney = 0;
    49.                                     currentPrepaidCardFrozen.FrozenMoney = currentOrderPayments[i].PayMoney;
    50.                                     currentPrepaidCardFrozen.FrozenStatus = 0;
    51.                                     currentPrepaidCardFrozen.FrozenSource = "1";
    52.                                     currentPrepaidCardFrozen.OperateType = 1;
    53.                                     currentPrepaidCardFrozen.OrderID = currentOrder.Oid.ToString();
    54.                                     currentPrepaidCardFrozen.PublicID = currentPrepaidCardPublic.Oid.ToString();
    55.                                     currentPrepaidCardFrozen.Remark = "平台冻结金额";
    56.                                 }

    57.                                 #endregion 卡冻结操作记录(冻结)
    58.                             }
    59.                         }

    60.                         #endregion 更新支付流水

    61.                         #region 创建订单明细

    62.                         if (currentOrder.OrderGoodsType != Order.OrderGoodsTypeEnum.商品)
    63.                         {
    64.                             for (int i = 0; i < currentOrder.Details.Count; i++)
    65.                             {
    66.                                 for (int j = 0; j < currentOrder.Details[j].BuyCount; j++)
    67.                                 {
    68.                                     Order_Credentials currentCredentials = new Order_Credentials(uow);
    69.                                     currentCredentials.CredentialNo = "不知道咋生成的";
    70.                                     currentCredentials.CredentialsType = string.IsNullOrEmpty(currentOrder.Details[j].UnionCode) ? 1 : 0;
    71.                                     currentCredentials.CardExpiredDate = DateTime.Now.AddMonths(3);
    72.                                     currentCredentials.OrderId = currentOrder.Oid;
    73.                                     currentCredentials.OrderNo = currentOrder.OrderNo;
    74.                                     currentCredentials.OrderPackageID = currentOrder.Details[j].OrderPackageId;
    75.                                     currentCredentials.PackageTitle = currentOrder.OrderGoodsType == Order.OrderGoodsTypeEnum.套餐 ? currentOrder.Details[j].Title : currentOrder.Details[j].Title + "自定义";
    76.                                     currentCredentials.Price = currentOrder.Details[j].Price;
    77.                                     currentCredentials.Status = Order_Credentials.StatusEnum.待预约;
    78.                                     currentCredentials.UnionCode = currentOrder.Details[j].UnionCode;
    79.                                     currentCredentials.UnionID = currentOrder.Details[j].UnionId;
    80.                                     currentCredentials.UnionName = currentOrder.Details[j].UnionName;
    81.                                     currentCredentials.UserID = currentOrder.UserID.Oid;
    82.                                     currentCredentials.CreateTime = DateTime.Now;
    83.                                     currentCredentials.CreateTrueName = "平台";
    84.                                     currentCredentials.ModifyTime = DateTime.Now;
    85.                                     currentCredentials.ModifyTrueName = "平台";
    86.                                 }
    87.                             }
    88.                         }

    89.                         #endregion 创建订单明细

    90.                         uow.CommitChanges();
    91.                     }

    92.                     WctPayEntity responseWctPayEntity = new WctPayEntity();
    93.                     responseWctPayEntity.SetValue("return_code", "![CDATA[SUCCESS]]");
    94.                     responseWctPayEntity.SetValue("return_msg", "![CDATA[OK]] ");
    95.                     return responseWctPayEntity.ToXml();
    96.                 }
    97.             }
    98.         }
    99.         catch (Exception)
    100.         {

    101.         }
    102.         return null;
    103.     }
    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 10:15
  • 签到天数: 756 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2022-4-15 10:42:43 | 只看该作者
    先单个调试自己的接口,如果没有问题,那可能是自己接口调用微信接口的之间有问题
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 1521 天

    连续签到: 5 天

    [LV.Master]测试大本营

    3#
    发表于 2022-4-15 11:16:16 | 只看该作者
    这个需要具体的测试环境进行测试
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 2819 天

    连续签到: 1 天

    [LV.Master]测试大本营

    4#
    发表于 2022-4-15 15:56:58 | 只看该作者
    超时?还是没反应
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 10:08 , Processed in 0.065773 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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