微信小程序接入微信支付

记录一下自己的这个接入过程

首先登录微信商户平台,去注册一个商户号。

登录成功后

  1.去账户中心的api安全里,将证书和密钥啥的都设置上

  2.去产品中心 找到jsapi 进行开通

  3.去小程序后台,微信公众平台上找到微信支付,接入商户号,到跳转的页面输入小程序的APPID,然后回到小程序后台进行验证通过

  4.微信支付里还有一个接入微信支付的tab点击他,进行相关申请

以上都完事了之后,准备工作就完成了,现在进入开发

首先后端开始,我用的是nestjs,引入了一个wechatpay-node-v3的包来用(wechatpay-node-v3 - npm

import WxPay from 'wechatpay-node-v3'; // 支持使用require
import fs from 'fs';
import request from 'superagent';

const pay = new WxPay({
  appid: '小程序的appid',
  mchid: '商户号',
  publicKey: fs.readFileSync('./apiclient_cert.pem'), // 公钥
  privateKey: fs.readFileSync('./apiclient_key.pem'), // 秘钥
});

//这个方法是用来获取调用支付的openid
const resultCode = await axios.get(
  'https://api.weixin.qq.com/sns/jscode2session',
    {
        params: {
           appid: '小程序的appid',
           secret: '',//这个是小程序的AppSecret,在开发管理进行设置
           js_code: body.code,
           grant_type: 'authorization_code',
          },
        },
      );Ï


 const params = {
   appid: '小程序的appid',
   mchid: '商户号',
   description: '测试',
   out_trade_no: new Date().getTime().toString(),
   notify_url: '回调通知地址,必须备案过且以https为开头的地址',
   amount: {
          total: 10 * 100,//前面的1就是你想要用户付多少钱就输入多少,后面的100不用管
   },
   payer: {
      openid: resultCode.data.openid,
   },
   };
 const result = await pay.transactions_jsapi(params);

这样服务端的部分就完成了,有个部分要说明一下,公钥和密钥,这两个的获取是在api安全下,申请证书的时候生成的,会有三个文件,其中两个就是密钥和公钥,保存好。

接下来是小程序端的代码

wx.login({
    success(res) {
    console.log("js_code", res.code)
    if (res.code) {
      //发起网络请求
      wx.request({
        url: '后端的请求地址',
         method: 'post',
         data: {
            code: res.code
         },
         success(res) {
           const data = res.data
           wx.requestPayment({
             "timeStamp": data.timeStamp,
              "nonceStr": data.nonceStr,
              "package": data.package,
               "signType": "RSA",
               "paySign": data.paySign,
               "success": function (res) {
                 console.log(res,'支付了')
                },
               "fail": function (res) {},
               "complete": function (res) {
                  console.log(res)
                 }
              })
             },
             complete(res, err) {
                console.log(res, err, 'errr')
             }
             })
           } else {
             console.log('登录失败!' + res.errMsg)
          }
}

前端就简单很多,根据后端返回的参数进行相关api的调用就可以。

微信小程序接入微信支付需要进行以下准备工作和技术实现: 1.准备工作: 1.1 申请材料:需要提供营业执照、银行开户许可证、组织机构代码证等材料。 1.2 费用:需要缴纳一定的费,包括认证费、服务费等。 1.3 申请流程:需要在微信支付平台上进行申请,提交相关材料并等待审核。 2.技术实现: 2.1 微信小程序微信支付流程:用户在小程序中选择商品并确认订单后,小程序向自己的服务端发送下单请求,服务端生成预支付订单并返回给小程序小程序再调起微信支付界面,用户完成支付后,微信会异步通知到服务端,服务端再查询支付结果并返回给小程序。 2.2 业务场景及代码实现: 2.2.1 确认订单:用户在小程序中选择商品并确认订单后,小程序向服务端发送下单请求,服务端生成预支付订单并返回给小程序。 2.2.2 下单:小程序收到预支付订单后,调用微信支付API生成支付参数,再将支付参数传递给小程序前端,小程序前端再调用微信支付API调起支付界面。 2.2.3 调起微信支付:用户在支付界面完成支付后,微信会异步通知到服务端,服务端再查询支付结果并返回给小程序。 2.2.4 查询支付结果:小程序前端可以通过调用服务端提供的查询支付结果接口来获取支付结果。 一些问题: 微信支付完成之后,微信会异步通知到自己的服务端,因为是异步的,所以建议小程序端主动去调接口触发查询支付结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值