常见问题
接口有频率限制吗?
针对key
限制每秒钟请求10次。
有没有接入示例 Demo?
每个接口文档下都有相应的代码示例,如果没有请联系我们更新。
技术对接时遇到问题怎么办?
首先请优先阅读我们的接入文档。如果问题刁钻无法解决💀,可通过客服渠道和我们取得联系。
下单后如何判断能量是否发送
下单后能量充足的情况下,大约1-3秒能量即可发送到接收钱包,status
等于4
表示已下单成功,等于6
表示能量已经发送,等于14
能量不足已退款,其他的状态可以尝试轮训请求查询订单详情 接口进行判断。感谢网友@miya0v0提供Golang代码的处理思路。可酌情参考。
// 创建一个通道,用于接收结果,设置一个缓冲区
resultCh := make(chan *utils.OrderQueryResponse, 1)
var wg sync.WaitGroup
wg.Add(1)
// 创建一个上下文和取消函数
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
defer cancel()
// 启动协程
go func() {
defer wg.Done() // 减少等待的协程数量
for {
select {
case <-ctx.Done():
// 如果超时,结束循环
log.Println("Timeout, stopping to fetch order details.")
return
default:
result, err := utils.GetOrderDetail(sendRentEnergy.OrderNo)
if err != nil {
log.Println("Error getting order detail:", err)
return
}
// 如果 result.FrozenTxID 不为空,将结果发送到通道并结束循环
if result.Status == 6 && result.FrozenTxID != "" {
resultCh <- result
return
} else {
log.Println(result.Status, result.FrozenTxID)
}
time.Sleep(1 * time.Second)
}
}
}()
// 等待所有协程完成
wg.Wait()
// 接收协程的结果
select {
case result := <-resultCh:
cancel() // 取消主协程的超时
case <-ctx.Done():
log.Println("Timeout: Failed to receive result from the goroutine.")
// 可选择在超时情况下进行相应处理
}