虚线解决办法:通过携带的scancode_time 字段来做隔离 if (res && res.q) { //二维码呼唤小程序 console.log(res) let old = parseInt(res.scancode_time + '000') let news = new Date().getTime(); if ((news - old) < 60000) { //当前时间减去 旧时间 做隔离 uni.showLoading({ title: "请求中" }) //业务代码 } }
小程序启动参数,在点击右上角胶囊——点击重新进入小程序后,不会被清除,如何解决?[图片] 注意:这个bug和 冷启动 / 热启动 / 获取参数API 无关,是“重新进入小程序”入口特有的bug。 复现步骤: 携带启动参数进入小程序,如扫码二维码(onLaunch / onShow / wx.getLaunchOptionsSync / wx.getEnterOptionsSync 都可以拿到,值一样)。根据启动参数,执行对应的业务逻辑。用户手动点击右上角胶囊——点击重新进入小程序。重新进入后,会始终保留第1步的启动参数(onLaunch / onShow / wx.getLaunchOptionsSync / wx.getEnterOptionsSync 都可以拿到,值一样)。这会导致重复执行第2步的业务逻辑,产生预期外的副作用。期望表现: “点击右上角胶囊——点击重新进入小程序” 这个行为是冷启动,按道理应该和其他的冷启动表现一致,即不保留上一次的启动参数。 如果官方解决不了,至少应该给一个场景值能区分 “点击重新进入小程序” 的 onLaunch 和其他入口的 onLaunch;或者暴露给开发者清除启动参数的API,用完即删。 社区很多人提到过启动参数的问题,初始化流程对业务实现的重要性不言而喻,请官方重视。
05-152023年6月 中旬了,这个问题依旧没有解决,没有自动回调
真机调试 SelectorQuery.exec 方法不执行回调?API: SelectorQuery.exec 微信版本号: 7.0.19 基础库版本: 2.13.0 开发者工具 SelectorQuery.exec 正常执行回调, 真机调试无法触发 SelectorQuery.exec 回调
2023-06-23不要传入商户号 就可以了,去掉参数//SubMchid: core.String("xxxxx"),
直连商户模式:V3-JSAPI下单返回:PARAM_ERROR 受理机构必须传入sub_mch_id直连商户模式支付接口:https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi 提示:{"code":"PARAM_ERROR","message":"受理机构必须传入sub_mch_id"}
2023-02-14最后解决办法 // 发起支付请求 微信预支付交易单 // 项目下终端加载微信官方包 go get -u github.com/wechatpay-apiv3/wechatpay-go func GetWeChatOrderPay() interface{} { var ( mchID string = "160*****" // 商户号 mchCertificateSerialNumber string = "321*****" // 商户证书序列号 mchAPIv3Key string = "0de*****" // 商户APIv3密钥 ) // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名 mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/golang/wechat/cert/apiclient_key.pem(商户APIv3密钥文件路径)") if err != nil { log.Println("微信预支付交易单 加载商家私钥错误:", err) } ctx := context.Background() // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力 opts := []core.ClientOption{ option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key), } client, err := core.NewClient(ctx, opts...) if err != nil { log.Println("微信预支付交易单 新微信支付客户端出错 :", err) } svc := jsapi.JsapiApiService{Client: client} // 得到prepay_id,以及调起支付所需的参数和签名 resp, result, err := svc.PrepayWithRequestPayment(ctx, jsapi.PrepayRequest{ Appid: core.String("wxf77****"), //微信小程序id Mchid: core.String("16*******"), //商户号 Description: core.String("自定义订单商品名称"), //商品名称 OutTradeNo: core.String("自定义订单id"), //自定义商品订单id Attach: core.String("自定义数据说明"), NotifyUrl: core.String("https://www.****"), //自定义支付成功反馈地址 Amount: &jsapi.Amount{ Total: core.Int64(100), }, Payer: &jsapi.Payer{ Openid: core.String("oNE*****"), //支付者微信id }, }, ) if err == nil { log.Println("微信预支付交易单 调起支付得到prepay_id resp错误: ", resp) } else { log.Println("微信预支付交易单 调起支付得到prepay_id 错误: ", err) } log.Println("微信预支付交易单 调起支付得到prepay_id 数据结果: \n", result) return "" }
golang发起 微信预支付交易单 提交报错 “Http头Authorization值格式错误”golang发起 微信预支付交易单 提交报错 “Http头Authorization值格式错误,请参考《微信支付商户REST API签名规则》” 怎么解决?官方文档不明确,有例子吗? // 微信预支付交易单 func getWeChatOrderPay() interface{} { url := "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi" jsonStr := []byte(`{ "mchid": "直连商户号", "out_trade_no": "商户自己订单号", "appid": "应用ID", "description": "商品名称商品名称", "notify_url": "支付结果通知的回调地址", "amount": { "total":100, "currency": "CNY" }, "payer": { "openid":"用户标识唯一openid" } }`) req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr)) if err != nil { log.Println("微信预支付交易单 byte异常:", err) } req.Header.Set("Authorization", "WECHATPAY2-SHA256-RSA2048") req.Header.Set("Content-Type", "application/json") req.Header.Set("Accept", "application/json") client := &http.Client{} //发起请求 resp, err := client.Do(req) if err != nil { log.Println("微信预支付交易单 POST异常:", err) } defer resp.Body.Close() statusCode := resp.StatusCode //head := resp.Header body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) fmt.Println("状态码:", statusCode) //fmt.Println("请求头:", head) return string(body) /* ============================ */ // mchid 直连商户号 // out_trade_no 商户自己订单号 // appid 应用ID // description 商品描述 // notify_url 支付结果通知的回调地址 // amount:{ //订单金额信息 // total: //总金额 //单位为分 // currency:CNY //货币类型 // } // payer:{ //支付者信息 用户标识唯一openid // openid // } }
2023-01-09