美文网首页
uniapp微信支付遇到的坑

uniapp微信支付遇到的坑

作者: Jey | 来源:发表于2021-01-19 14:10 被阅读0次

首先需要去微信开放平台申请微信支付微信开放平台

uniapp的代码

payOrder(orderInfo) {
                const providerList = ['微信支付', '支付宝支付']
                new Promise((resolve, reject) => {
                    uni.showActionSheet({
                        itemList: providerList,
                        success(res) {
                            resolve(res.tapIndex)
                        },
                        fail() {
                            reject(new Error('取消支付'))
                        }
                    })
                }).then((index) => {
                    return paySign.getPayInfo(orderInfo, index)
                }).then((payOrderInfo)=>{
                    uni.requestPayment({
                        // 支付方式
                        provider: payOrderInfo.payType ===0? "wxpay": "alipay",
                        // 订单内容
                        orderInfo: payOrderInfo.info,
                        success: (res) => {
                            console.log("success", JSON.stringify(res));
                            return res;
                        },
                        fail: (err) => {
                            console.log("fail", JSON.stringify(err));
                            return err;
                        }
                    })
                })
            },
paySign.getPayInfo = function (orderInfo, payType) {
    console.log('payType====', payType)
    let data = {
        payType: payType
    }
    if (payType == 0) {
        data.info = paySign.getWXPayInfo(orderInfo)
    } else {
        data.info = paySign.getAliPayInfo(orderInfo)
    }
    return data
}
paySign.getWXPayInfo = function(orderInfo) {
    const noncestr = paySign.randomSrt(true, 10, 20), // 随机数
        key = "", // 加密Key,微信支付填写的key
        time = new Date(),
        timestamp = time.getTime().toString().substr(0, 10), // 时间戳
        payInfo = {
            appid: orderInfo.appid,
            noncestr: orderInfo.noncestr,
            package: 'Sign=WXPay',
            partnerid: orderInfo.partnerid,
            prepayid: orderInfo.prepayid,
            timestamp: Number(orderInfo.timestamp)
        }
    // 键值对按照ASCII码从小到大排序生成类似:appid=xxx&body=xx&device_info=1000
    let keyValueStr = paySign.mapObjToKeyValue(payInfo, true);
    // 插入加密Key到最后
    let strSignTemp = `${keyValueStr}&key=${key}`;
    // 真正的二次加密
    let sign = util.md5Encode(strSignTemp).toUpperCase().substr(0, 32);
    payInfo.sign = sign;
    console.log('payInfo', payInfo)
    // 返回字符串给uniapp调起支付用
    return JSON.stringify(payInfo);
}

到了这一步,安卓端是可以支付了,但是在iOS端发现失败了,微信都没调起来,返回支付信息支付失败{“errMsg“:“requestPayment:fail errors“,code:-1}

在iOS端很重要的一个点要设置UniversalLinks,假如你是下载的HTML 5+ SDK的工程,搜索UniversalLinks,在一个plist文件中要替换掉默认的,换成自己的UniversalLinks

相关文章

  • uniapp微信支付遇到的坑

    首先需要去微信开放平台申请微信支付微信开放平台[https://open.weixin.qq.com/] unia...

  • 微信支付相关问题解决网址

    ios微信支付开发遇到的问题 微信支付趟过的坑

  • uniapp-payment

    uniapp-payment 介绍 uniapp支付 微信支付流程 测试接入的是uniapp官方预下单接口 APP...

  • 微信支付遇到的坑

    自己容易埋下的坑 1、订单创建成功但支付失败,再次调用订单进行支付又能成功支付失败报缺少appid 这里的微信报...

  • [总结] 微信开发遇到的坑

    本文总结在微信开发过程中遇到的各种坑。 微信支付:chooseWXPay:fail, the permission...

  • 微信和支付宝支付封装

    第一次接支付会遇到各种问题,所以我把自己走过的坑总结了一下: 微信支付: ①:微信支付 商户在微信开放平台申请开发...

  • iOS集成支付宝/微信支付遇到的坑...

    最近在集成微信/支付宝支付,下面是集成的大体流程以及遇到的一些坑,特此记录.首先来谈下微信支付(因为集成支付宝支付...

  • uniapp支付之微信支付

    写在前面的话 本文内容是指的uni-app项目的支付,文档中5+ APP的项目类型不涉及。虽然uni-app已经为...

  • 说说微信支付遇到的坑

    最近公司上的app需要增加一个微信支付的功能。初看微信支付API开发文档还是很简单的,但是在简单的背后却隐藏这几个...

  • 微信支付中遇到的坑

    php版本兼容问题 php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_R...

网友评论

      本文标题:uniapp微信支付遇到的坑

      本文链接:https://www.haomeiwen.com/subject/jzbqzktx.html