Bitcoin Forum
September 19, 2024, 04:35:22 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bitcoins auf Bitcoin Wallet Adresse senden  (Read 1884 times)
brouwer (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 10, 2015, 01:47:21 AM
 #1

Hey, ich habe ein kleines Bestellformular und jetzt soll es darum gehen, dass der User Bitcoins von meinem Konto auf seines gesendet bekommt. Zuvor wäre es noch gut, wenn er schaut ob ich genug Bitcoins habe, aber im Grunde eine simple Aufgabe.

Leider komme ich mit der API überhaupt nicht zurecht. Ich teste auf auf meinem lokalen XAMPP Server unter Mac OS X und bin schon mal soweit:

Code:
require_once 'jsonRPCClient.php';
$bitcoin = new jsonRPCClient('http://root:root@127.0.0.1:8332/');
$guid="GUID_HERE";
$main_password="PASSWORD_HERE";
$second_password="PASSWORD_HERE";
$balance = $bitcoin->getbalance($$guid);

// Bitcoin-Zahlung senden
$json_url = "https://blockchain.info/de/merchant/$guid/payment?password=$main_password&second_password=$second_password&to=$btcEmail&amount=$amount";
$json_data = file_get_contents($json_url);
$json_feed = json_decode($json_data);
$message = $json_feed->message;
$txid = $json_feed->tx_hash;

Die jsonRPCClient.php habe ich auch. Ich weiß nicht ob der Rest tatsächlich das macht was ich vorhabe... funktioniert eh nicht das Script, da er nicht auf http://root:root@127.0.0.1:8332 connecten kann. Ich habe jetzt auch noch gelesen, dass ich bestimmte Programme installiert, konfiguriert und gestartet haben muss. Ich habe keine Ahnung wie ich das unter XAMPP auf dem Mac machen soll. Ist das denn wirklich nötig für die Nutzung der API? Ich hoffe es kann mir endlich jemand einfach und verständlich erklären.

Mit freundlichen Grüßen
Ricke
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
January 10, 2015, 12:33:47 PM
 #2

Dein Fehler ist, dass du zwei unterschiedliche Zahlungssysteme mischst (Bitcoin Core und Blockchain.info).

Entweder (A):
Code:
<?php
require_once 'jsonRPCClient.php';
//...Code...
$bitcoin = new jsonRPCClient('http://$user:$pass@127.0.0.1:8332/');
$balance $bitcoin->getbalance();
if (
$will_schicken $balance)
{
  
$bitcoin->sendtoaddress($empfaenger$will_schicken);
}
else
{
  
$FehlerMeldung("Tut uns leid, leider ist ein interner Fehler aufgetreten. Wir bitten um Verständnis");
}
//...

Oder (B):
Code:
<?php
//...code...
$json_url "https://blockchain.info/de/merchant/$guid/balance?password=$main_password";
$json_data file_get_contents($json_url);
$json_feed json_decode($json_data);
//Hier Ergebnis weiterverarbeiten, leider nutze ich die blockchain.info-API nicht
//...code...
$json_url "https://blockchain.info/de/merchant/$guid/payment?password=$main_password&second_password=$second_password&to=$btcEmail&amount=$amount";
$json_data file_get_contents($json_url);
$json_feed json_decode($json_data);
$message $json_feed->message;
$txid $json_feed->tx_hash;
//...code...

Wenn du Möglichkeit A nutzt, musst du in der Config (bitcoin.conf) server=1, rpcuser=$Geheimer_nutzername und rpcpassword=$Geheimes_passwort setzen und dafür sorgen, dass Bitcoin lokal immer läuft, was mit etwas Wartungsaufwand verbunden ist. Die Blockchain-API wäre dafür gar nicht mehr nötig.

Wenn du Möglichkeit B nutzt, brauchst du lokal nichts groß einstellen. Dafür musst du dir ein Blockchain.info-Account zulegen und dir die GUID besorgen und API-Zugriff aktivieren.

Ein guter Rat zum Schluss: Wenn du schon mit der API auf Kriegsfuß bist, solltest du keine großen Beträge in dieser Wallet halten, da es immer Leute gibt, die versuchen, jeden kleinen Programmierfehler auszunutzen um die Wallet zu plündern. Wenn du es mit größeren Beträgen zu tun hast, solltest du professionelle Fachkräfte einstellen.

Verkaufe Bitcoin gegen Bargeld (Wuppertal und Düsseldorf, Handel im öffenlichen Raum, z.B. bei McDonalds), privat zu privat und völlig anonym. Konditionen im Thread; Individualabsprachen möglich
(Ich mache mit Erstkontakten nur kleinere Handel, weiteres ja nach Kurs, Vertrauen, mein Bedarf, Ermessen und Situation)
brouwer (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 10, 2015, 07:15:40 PM
 #3

Möglichkeit B klingt gut.
Mir ist noch nicht ganz klar, in welcher Beziehung Blockchain zu Bitcoin steht... Für Möglichkeit B, brauche ich da nicht noch die Libraries von Blockchain? Weil die werden auf der Seite angeboten.
Ricke
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
January 12, 2015, 08:52:53 PM
 #4

Sagen wir's mal so: Google steht im Verhältnis zum Internet wie blockchain.info zur Blockchain.

Google ist eine Suchmaschine und ein E-Mail-Dienst für das Internet, aber Google ist nicht das Internet.
Blockchain.info ist die Suchmaschine und Wallet für die Blockchain, aber Blockchain.info ist nicht die Blockchain, auch wenn der Name gleich lautet.

Wenn du Möglichkeit B nimmst, kannst du dich entscheiden, ob du irgendwelche vorgefertigte Klassen nutzt oder ob du es selbst organisiert. Wichtig ist nur, dass deine Blockchain.info-Wallet für die Api freigeschaltet ist.

Verkaufe Bitcoin gegen Bargeld (Wuppertal und Düsseldorf, Handel im öffenlichen Raum, z.B. bei McDonalds), privat zu privat und völlig anonym. Konditionen im Thread; Individualabsprachen möglich
(Ich mache mit Erstkontakten nur kleinere Handel, weiteres ja nach Kurs, Vertrauen, mein Bedarf, Ermessen und Situation)
brouwer (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 13, 2015, 08:04:37 PM
 #5

Notice: Undefined property: stdClass::$message in /Applications/XAMPP/xamppfiles/htdocs/stefan/index.php on line 247
Notice: Undefined property: stdClass::$tx_hash in /Applications/XAMPP/xamppfiles/htdocs/stefan/index.php on line 248

Code:
$json_url = "https://blockchain.info/de/merchant/$guid/payment?password=$main_password&second_password=$second_password&to=$btcEmail&amount=$amount";
$json_data = file_get_contents($json_url);
$json_feed = json_decode($json_data);
$message = $json_feed->message;
$txid = $json_feed->tx_hash;

Ich nutze die Library von https://github.com/blockchain/api-v1-client-php
Ricke
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
January 13, 2015, 10:18:23 PM
 #6

Wenn du den Code so wie oben benutzt, dann hast du zwar vielleicht die Library eingebunden, aber du nutzt sie nicht.
Ein Libarary-Aufruf sollte typischer ungefähr so aussehen:
Code:
<?php
//...
$response $Blockchain->Wallet->send($to_address$amount);
//...
Macht nichts, dein Beispiel sollte auch ohne die Library examplarisch funktionieren, Voraussetzung du gibts die richtigen Daten an.

Wie ich sehe, rufst du es mit to=$btcEmail auf, was so aussieht als würdest du eine E-Mail-Adresse eintragen. Das wäre falsch, richtig ist: to=$Eine_Bitcoin_Adresse, wobei to= dann die Empfängeradresse ist.

Wenn du unter $json_data = ... schreibst:
Code:
<?php
$json_data 
= ... //Originalzeile
var_dump($json_data);
//...
dann siehst auch, was schief gelaufen ist. Die Meldung: ... Undefined property ... sagt, dass Werte fehlen, ist häufig Folge(fehler) eines fehlerhaften Aufrufes, welches du natürlich abfangen musst.

Nochmal mein Ratschlag: Sollte es nur zu Lernzwecke dienen, dann ist es ganz in Ordnung. Sollte es aber um größere Summen gehen, empfehle ich dir dringends, eine Fachkraft einzusetzen, anstatt zu versuchen, etwas selbst zurechtzufrickeln, sonst wird die Wallet schnell geplündert.

Verkaufe Bitcoin gegen Bargeld (Wuppertal und Düsseldorf, Handel im öffenlichen Raum, z.B. bei McDonalds), privat zu privat und völlig anonym. Konditionen im Thread; Individualabsprachen möglich
(Ich mache mit Erstkontakten nur kleinere Handel, weiteres ja nach Kurs, Vertrauen, mein Bedarf, Ermessen und Situation)
brouwer (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 14, 2015, 06:22:13 PM
 #7

Eingebunden hatte ich die API mit $Blockchain = new Blockchain();
Und ja du hattest Recht, ich hab auch bei der Angabe immer an eine E-Mail gedacht..

Hab das mal ausgebessert
Code:
$response = $Blockchain->Wallet->send($btcAddress, $amount);
                                $json_url = "https://blockchain.info/de/merchant/$guid/payment?password=$main_password&second_password=$second_password&to=$btcAddress&amount=$amount";
                                $json_data = file_get_contents($json_url); var_dump($json_data);
                                $json_feed = json_decode($json_data);
                                $message = $json_feed->message;
                                $txid = $json_feed->tx_hash;

und bekomme diesen Output:
Code:
Fatal error: Uncaught exception 'Blockchain_CredentialsError' with message 'Please enter wallet credentials.' in /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php:22 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php(40): Wallet->_checkCredentials() #1 /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php(118): Wallet->call('payment', Array) #2 /Applications/XAMPP/xamppfiles/htdocs/index.php(244): Wallet->send('2CJvYeF1rguDqES...', 8E-11) #3 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php on line 22
Ricke
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
January 15, 2015, 06:27:53 PM
 #8

Diese Zeilen Code kommen im Script nur vor, wenn du blockchain.info mit der Library nutzt:
Code:
<?php
//...
$response $Blockchain->Wallet->send($btcAddress$amount);
//...
?>


Diese Zeilen werden so nur verwendet, wenn du blockchain.info ohne der Library nutzt:
Code:
<?php
//...
                                
$json_url "https://blockchain.info/de/merchant/$guid/payment?password=$main_password&second_password=$second_password&to=$btcAddress&amount=$amount";
                                
$json_data file_get_contents($json_url); var_dump($json_data);
                                
$json_feed json_decode($json_data);
                                
$message $json_feed->message;
                                
$txid $json_feed->tx_hash;
//...
?>



Quote
Fatal error: Uncaught exception 'Blockchain_CredentialsError' with message 'Please enter wallet credentials.' in /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php:22 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php(40): Wallet->_checkCredentials() #1 /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php(118): Wallet->call('payment', Array) #2 /Applications/XAMPP/xamppfiles/htdocs/index.php(244): Wallet->send('2CJvYeF1rguDqES...', 8E-11) #3 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/lib/Blockchain/Wallet.php on line 22
Du hast weitere 3 Fehler gemacht:
1. Du hast vergessen, im Script deine Zugangsdaten einzutragen.
2. Bitcoin-Adressen fangen nicht mit "2CJv..." an.
3. Du versuchst 8E-11, in Dezimalschreibweise 0,00000000008BTC zu senden, aber der Bitcoin lässt sich höchstens bis zu 8 Nachkommastellen teilen. 1E-8, in Dezimalschreibweise 0,00000001BTC sind technisches Minimum. Aus praktischen Gründen solltest du nicht versuchen, weniger als 0,0000546BTC zu senden (Dust-Limit).

Verkaufe Bitcoin gegen Bargeld (Wuppertal und Düsseldorf, Handel im öffenlichen Raum, z.B. bei McDonalds), privat zu privat und völlig anonym. Konditionen im Thread; Individualabsprachen möglich
(Ich mache mit Erstkontakten nur kleinere Handel, weiteres ja nach Kurs, Vertrauen, mein Bedarf, Ermessen und Situation)
brouwer (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 16, 2015, 03:15:05 PM
 #9

Quote
1. Du hast vergessen, im Script deine Zugangsdaten einzutragen.
Wo geb ich die denn ein?
Ricke
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
January 17, 2015, 11:19:24 AM
 #10

Quote
1. Du hast vergessen, im Script deine Zugangsdaten einzutragen.
Wo geb ich die denn ein?
Im Script.
Beispiel siehst du hier: https://github.com/blockchain/api-v1-client-php/blob/master/docs/wallet.md

Verkaufe Bitcoin gegen Bargeld (Wuppertal und Düsseldorf, Handel im öffenlichen Raum, z.B. bei McDonalds), privat zu privat und völlig anonym. Konditionen im Thread; Individualabsprachen möglich
(Ich mache mit Erstkontakten nur kleinere Handel, weiteres ja nach Kurs, Vertrauen, mein Bedarf, Ermessen und Situation)
brouwer (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 17, 2015, 12:44:53 PM
 #11

Dann sollte die ganze Transaktion mit diesen Zeilen Code ja funktionieren.

Code:
require 'BlockChain.php';
$Blockchain = new Blockchain($api_code);
$Blockchain->Wallet->credentials('wallet-id-1', 'password-1', 'optional 2nd password');
$response = $Blockchain->Wallet->sendMany($recipients, $from_address=null, $fee=null, $public_note=null);

In dem Fall habe ich noch eine Frage zum API Code, da ich nicht sicher bin ob ich da den richtigen Code beantragt habe. Dazu habe ich einen Antrag mit den Daten meiner Website und einigen anderen getätigt. Dieser wird innerhalb der nächsten 24h bearbeitet.
Und ist die "Wallet ID" die, welche unter dem QR-Code im "Wallet" Reiter auf blockchain.info steht?

Mit der Beschriftung
"Das ist Ihre Bitcoin Adresse
1DJvYeF*zensiert da ich nicht weiß ob es gefährlich sein könnte wenn ihr es seht*zr566y3iYc

Geben Sie diese an die Personen weiter von denen Sie Zahlungen erhalten wollen."
Ricke
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
January 18, 2015, 04:57:11 PM
 #12

Die Wallet-ID müsste der Identifier sein, den du angeben musst, wenn du auf den Reiter Wallet klickst und dort auf Einloggen. Es hat die Form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ein x steht für eine Hex-Zeichen steht (x in 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f).

Eine Anmerkung noch:
Es bringt nichts, eine Bitcoin-Adresse zu zensieren, da die Datenbank öffentlich ist man danach suchen kann. Bei deiner Adresse reichen schon die ersten 6 Zeichen aus, um die volle Bitcoin-Adresse und dessen Guthaben rauszufinden.

Verkaufe Bitcoin gegen Bargeld (Wuppertal und Düsseldorf, Handel im öffenlichen Raum, z.B. bei McDonalds), privat zu privat und völlig anonym. Konditionen im Thread; Individualabsprachen möglich
(Ich mache mit Erstkontakten nur kleinere Handel, weiteres ja nach Kurs, Vertrauen, mein Bedarf, Ermessen und Situation)
brouwer (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 19, 2015, 07:43:28 PM
 #13

Code:
require 'lib/Blockchain.php';
$Blockchain = new Blockchain($api_code);
$Blockchain->Wallet->credentials($wallet_id, $main_password, $second_password);
// Zahlung senden
$response = $Blockchain->Wallet->send($btcAddress, $amount, null, "0.0001", "Here you go, Satoshi!");

Ok, dann fehlt mir nur noch der API Code. Den muss man also beantragen, lieg ich da richtig? Ich hab nach 24h immer noch keinen Code. Sind die da anspruchsvoll?
Ricke
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
January 23, 2015, 12:21:25 PM
 #14

Probiers mal ohne API-Key. Soweit ichs verstehe, braucht man den API-Code nur, wenn man bestimmte Limits (Anzahl der Aufrufe pro Stunde/Tag) überschreitet.

Verkaufe Bitcoin gegen Bargeld (Wuppertal und Düsseldorf, Handel im öffenlichen Raum, z.B. bei McDonalds), privat zu privat und völlig anonym. Konditionen im Thread; Individualabsprachen möglich
(Ich mache mit Erstkontakten nur kleinere Handel, weiteres ja nach Kurs, Vertrauen, mein Bedarf, Ermessen und Situation)
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!