可以直接把订阅写在wx.connectSocket()的success 方法里边
SocketTask设计缺陷:先链接,再订阅。SocketTask设计有很大问题, api写法入下: let task = wx.connectSocket(); task.onOpen(()=>{ console.log('链接成功!') }); 问题:onOpen事件的订阅在链接之后进行,会概率性导致:先链接成功再订阅事件的问题(无法触发onOpen事件)。 我检查了所有api,没找到合适对处理方式,希望能给予解答。 理论上api应如下: // 解决方案一:connectSocket不自动链接,并提供“connection()”方法。 let task = wx.connectSocket(); // 这里不应该自动发起链接,只创建SocketTask对象即可。 task.onOpen(()=>{ console.log('链接成功!') }); // 订阅 task.connection(); // 开始链接(没有这个api) // 解决方案二:事件的订阅写在wx.connectSocket()里
2021-04-09同顶
查询订单接口不返回sub_openid服务商模式下,调用查询订单接口,接口参数传入了sub_appid,但返回值sub_openid为空。已经确认的是,该用户使用过付款码支付和小程序支付。且在小程序支付后,通过查询订单发现,返回的openid与小程序的openid不符,返回值如下: { "transaction_id": "4200000498201912316294626437", "nonce_str": "wzF6v7xsHDJQJzVH", "trade_state": "SUCCESS", "bank_type": "CMB_CREDIT", "openid": "oAT3B51FsOTJ4DXcFUiOv7gU8E-4", "sign": "912D9F22B5FDCA2E0DA997FA41969152", "return_msg": "OK", "fee_type": "CNY", "mch_id": "****", "sub_mch_id": "***", "cash_fee": "300", "out_trade_no": "CPRP749065074", "cash_fee_type": "CNY", "appid": "****", "total_fee": "300", "trade_state_desc": "支付成功", "trade_type": "NATIVE", "result_code": "SUCCESS", "attach": "", "time_end": "20191231141141", "is_subscribe": "Y", "return_code": "SUCCESS" }
2019-12-31