微信支付(uni为例)&&购物车支付对接过程

125 阅读1分钟

1.登录获取code

uni.login({
	  success(res) {
		console.log("code", res.code)
	}
 })

2.调用微信接口,code换取openid(用户真实id)

uni.request({
    // 微信接口
    url: "https://api.weixin.qq.com/sns/jscode2session",
    data: {
    // appid: '小程序appId',
    // secret: '小程序密钥,在小程序appId下一行,放一块在',
    // js_code: '刚才获取的code',
    // grant_type: 'authorization_code' ,//固定值
    appid: 'wx9055d5fde47088f2',
    secret: 'e1518a7662899aa7f57aa49154578a84',
    js_code: res.code,
    grant_type: 'authorization_code'
    },
            success(res) {

            console.log("openid", res.data.openid)
    }
})

3.调用(自己)公司 支付接口

该商品库存-1

    //调用公司后端自己提供的接口
    uni.request({
        url: '',
        method: 'POST',
        data:{
        openId: res.data.openid, //用户真实id
        name: '电饭煲', //商品名称
        money: _this.money, //扣多少钱
        code: _this.id++, //订单编号
        payType: 1, 	//小程序支付1
        clientIp: '127.0.0.2' //随便填一个ip
        },
        success(res) {
            // appId: "wx4f27fd5197bfda"
            // nonceStr: "VmTJObhbihujKoW"
            // packageValue: "prepay_id=wx11161138405677ddd5099b941e9ed0000"
            // paySign: "3298C274FE7C27F17EBFD4C2320564B"
            // signType: "MD5"
            // timeStamp: "1665475333"
            }
    })

4.调用官方微信支付接口,传递给官方接口

取消支付不调用,订单状态待支付

支付超时未支付,不能支付且该商品库存-1

uni.requestPayment({
											timeStamp: res.data.data.timeStamp,
											paySign:res.data.data.paySign,
											package: res.data.data.packageValue,
											signType: res.data.data.signType,
											nonceStr: res.data.data.nonceStr,
											success() {
												console.log('支付成功')
	}
})