请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

妈耶,支付终于通了,这里给大家说下我都咋解决的

一.怎么将授权和支付连接起来调

1.我在applicaiton.yml创建了两个appid,一个是用于授权,一个用于支付,然后分别赋值

wechat:
  mpAuthrizeAppId: wxd898fcb01713c658 #测试账号 用于授权
  mpAppId: wxd898fcb01713c658 #正式账号 用于支付

2.其次,你需要将生成商户订单这里openid硬编码为借用的openid,不要从数据库里取,因为前端生成订单的时候他传过来的openid是你测试账号生成的openid,所以它是不能支付的,会告诉你数据库中没有该openid...

 @Override
    public PayResponse create(OrderDTO orderDTO) {
        PayRequest payRequest = new PayRequest();
        //硬编码为借用的openid
        payRequest.setOpenid("oTgZpwcc3Xw-aUxIC56kZ1e5Msh0");
        payRequest.setOrderId(orderDTO.getOrderId());
        payRequest.setOrderAmount(orderDTO.getOrderAmount().doubleValue());
        payRequest.setOrderName("微信订单测试");
        payRequest.setPayTypeEnum(BestPayTypeEnum.WXPAY_H5);
        log.info("【微信支付】生成商户订单request={}", payRequest);
        PayResponse payResponse = bestPayService.pay(payRequest);
        log.info("【微信支付】返回预付单信息response={}", payResponse);
        return payResponse;
    }

二.支付成功,跳转的详情页面为404?

需要对returnUrl进行解码

 map.put("returnUrl", URLDecoder.decode(returnUrl));

三.支付成功,跳转的详情页面没数据?

我抓包看了下,前端传过来的orderId,这个I是大写的,老师带我们写的是小写,改一下就好了

四.怎么进入自己的create方法

在前端config/index.js配置,后面的openid就是借用的openid,老师会根据你的openid转发到你申请时填写的链接从而跳转

wechatPayUrl: 'http://proxy.springboot.cn/pay?openid=oTgZpwcc3Xw-aUxIC56kZ1e5Msh0'

然后这时候你还会报错,因为在前端代码里,它也传了授权得到的openid,这时候链接就成了http://proxy.springboot.cn/pay?openid=oTgZpwcc3Xw-aUxIC56kZ1e5Msh0?openid=oTgZpwcc3Xw-aUxIC56kZ1e5Msh0&openid=12312414&returnUrl=sell.com,解决办法就是去掉前端代码里的orderid,找到src目录下的payment/index.vue,然后删掉圈住的

五.productId为null

当你创建订单时会发现,orderDetail集合,也就是items中的productId为null,为了大家方便,一个快速解决问题的方法,还是刚才那个目录,将原先的代码写死,具体为啥没传过去不知道

正在回答

7回答

也就是items中的productId为null,可以抓包看看请求

0 回复 有任何疑惑可以回复我~
  • 提问者 黑子的一生 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-04-08 00:55:49
慕先生3051470 2020-06-04 10:53:30

谢谢大佬,困扰一周的问题终于成功了

0 回复 有任何疑惑可以回复我~
小龙人哎 2020-05-12 21:19:38

提供一种别的解决方法 https://blog.csdn.net/qq_39021393/article/details/106081771

0 回复 有任何疑惑可以回复我~
小龙人哎 2020-05-12 21:19:02

提供一种解决办法

0 回复 有任何疑惑可以回复我~
weixin_慕容8513646 2020-05-12 14:06:28

授权这块具体是咋弄的呀 

0 回复 有任何疑惑可以回复我~
qq_慕数据0528687 2020-04-19 21:07:17

大佬请问一下,第一步中,我是用wxPayH5Config.setAppId(accountConfig.getMpAuthrizeAppId());获取授权,然后之后怎么用mpAppId去覆盖MpAuthrizeAppId哇


0 回复 有任何疑惑可以回复我~
  • 提问者 黑子的一生 #1
    看我上面写的,配置两个Appid,一个授权,一个支付,它们配置又不共用
    回复 有任何疑惑可以回复我~ 2020-04-20 18:39:06
小龙人哎 2020-04-10 15:41:52

我想问下 修改js后如何使修改部分其生效 

0 回复 有任何疑惑可以回复我~
  • 提问者 黑子的一生 #1
    老师有讲的,修改完代码后,在项目根目录执行npm run build,然后将dist下的文件拷贝
    回复 有任何疑惑可以回复我~ 2020-04-11 15:09:48
  • 小龙人哎 回复 提问者 黑子的一生 #2
    好的 谢谢 我解决了
    回复 有任何疑惑可以回复我~ 2020-04-11 17:05:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信