• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序支付接入实战

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1. 微信小程序支付接入实战

1.1. 需求

  最近接到一个小程序微信支付的需求,需要我写后台支持,本着能不自己写就不自己写的cv原则,在网上找到了些第三方程序,经过尝试后,最后决定了这不要脸作者的这款

1.2. 使用第三方sdk

https://github.com/Pay-Group/best-pay-sdk

不要脸的作者,自称最好用的sdk,demo地址:

https://github.com/Pay-Group/best-pay-demo

1.3. 项目改造

  1. 通过查看该项目的readme,我们可以知道,这个项目表面上只支持微信公众号支付和h5支付,我下载demo体验了一下,发现封装的还是可以的。
  2. 通过查看微信支付官网 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3 ,我们知道小程序的支付流程,在后台执行过程上和上面两个都是类似的,只要小小的改动就可以支持小程序支付了
  3. 在demo中controller类实现了统一下单API,和回调支付结果API,小程序唯一的区别就是统一下单API直接由小程序调用返回预付单信息,再由小程序去调用

1.4. 修改后代码

/**
 * 发起支付
 */
@GetMapping(value = "/pay")
@ResponseBody
public PayResponse pay(@RequestParam("openid") String openid,
                       @RequestParam("amount") Double amount,
                       Map<String, Object> map) {
    PayRequest request = new PayRequest();
    Random random = new Random();

    //支付请求参数
    request.setPayTypeEnum(BestPayTypeEnum.WXPAY_H5);
    request.setOrderId(String.valueOf(random.nextInt(1000000000)));
    request.setOrderAmount(amount);
    request.setOrderName("xxx费");
    request.setOpenid(openid);
    log.info("【发起支付】request={}", JsonUtil.toJson(request));

    PayResponse payResponse = bestPayService.pay(request);
    log.info("【发起支付】response={}", JsonUtil.toJson(payResponse));
    return payResponse;
}
  1. 这里返回的信息都是签过名可以由微信小程序直接调用的,可以看到改动真的很小,只是把跳转网页改成了返回json数据
  2. 接下来就是微信小程序的事了,直接参考官网的就行

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序进行地图导航使用地图功能发布时间:2022-07-18
下一篇:
小程序客服实现自动回复 - cag2050发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap