首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区块链信息钱包支票付款

区块链信息钱包支票付款
EN

Stack Overflow用户
提问于 2017-12-15 17:48:41
回答 1查看 1.1K关注 0票数 1

我试图创建付款账单,并通过电报bot发送给我的客户:我使用的是块链API 2-https://blockchain.info/api/api接收.my代码是:

代码语言:javascript
复制
xpub='***'
keyk='02e57f1***'
url='https://api.blockchain.info/v2/receive?xpub='+str(xpub)+'&callback=https%3A%2F%2Fdoors03.ru&key='+keyk
x=requests.get(url)
r=x.json()
r=r['address']

R,-is,做了一个三明治。我把它寄给我的客户(顺便说一句,有什么办法能给我的客户发一份确切的薪水)。在我想检查是否收到付款后:

代码语言:javascript
复制
data={ "Content-Type": "text/plain","key":keyk,"addr":r,"callback":"https%3A%2F%2Fdoors03.ru","onNotification":"KEEP", "op":"RECEIVE"}
r = requests.post(url, data=data)

这是响应- u'{\n消息:“内部处理程序错误”\n}‘我做错了什么?如何检查付款?如何发送地址与确切和btc或以太?

EN

回答 1

Stack Overflow用户

发布于 2018-01-04 11:42:35

对不起,我没有足够的声誉发表评论,所以这是我唯一的选择。@egorkh你解决这个问题了吗?也许您已经收到了blockchain.info支持的解释?我已就此事向他们提出了一个问题,但他们回答得太久了。

更新:终于找到了解决方案。

在我的例子中,“内部处理程序错误”消息的原因是对其API的错误解释。

由于他们没有在java中实现balance_update请求,所以我自己做了,而且我做错了。

我提出了这一参数:

{“键”:keyk,"addr":r,“回调”:“https%3A%2F%2F%2F邻s03.ru”,“onNotification”:“保持”,“op”:“接收”}

作为post参数,就像在api中提供的其他方法一样。在这些方法中,参数是URLEncoded,就像对回调链接所做的那样。但是..。

在此HTML请求中,它们必须以json格式以纯文本形式发送,而不需要任何特殊编码,如下所示:

代码语言:javascript
复制
Map<String, String> params = new HashMap<String, String>();
    params.put("addr", address);
    params.put("callback", callbackUrl);
    params.put("key", apiCode);
    params.put("onNotification", keepOnNotification? "KEEP" : "DELETE");
    params.put("confs", Integer.toString(confirmationCount));
    params.put("op", StringUtils.isBlank(operationType) ? "ALL" : operationType);
    
//parse parameters map to json string(that's optional: you can write it  directly as string)
String body = new Gson().toJson(params);

if (requestMethod.equals("POST")) {
    byte[] postBytes = body.getBytes("UTF-8");
    conn.setDoOutput(true);
    conn.setRequestProperty("Content-Type", "text/plain");
    conn.setRequestProperty("Content-Length", String.valueOf(postBytes.length));
    conn.getOutputStream().write(postBytes);
    conn.getOutputStream().close();
}

导致错误的主要原因可能是在数据对象(可能是编码的回调url)中放置了“Content”:“text/平原”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47837442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档