thinkphp比特幣支付
① 比特幣錢包地址怎麼獲得
現在很難,去官網上下載程序,自己做,但是可能要好幾年,第二種方法就是去買,現在大約是十八美金一個,不到一百元。比特幣最大交易網站Mt.Gox 。在比特幣的官方網站上,有一篇中本聰的論文,詳細講述了比特幣的技術原理。簡而言之,比特幣基於一套密碼編碼、通過復雜演算法產生;任何人都可以下載並運行比特幣軟體而參與製造比特幣;比特幣利用電子簽名的方式來實現流通,通過P2P網路來核查重復消費。
到2140年之前,比特幣的總量為2100萬個。建議你還是買吧。
「挖礦」2009年,一個名叫Satoshi Nakomoto的神秘黑客率先提出比特幣這個概念,並描述了一種利用計算機網路創造一種不受管理的「秘密貨幣」的方法。不像其他的虛擬貨幣,比特幣不由某家公司或某個央行發行,也不與任何的現實貨幣掛鉤,卻可以用來購買現實世界中的物品和服務。本質上,它可以看做是在互聯網上快速傳遞和存儲在電子錢包中的一小串加密代碼。正如曾經的Napster和Skype這些P2P網路把唱片業和電話業搞得天下大亂,挑戰現代貨幣金融學的比特幣也是基於P2P——與我們常用的BT下載的技術一樣。P2P的好處是,確保沒有任何機構可以操控比特幣的價值,或者增加供應量製造通脹。在一個龐大的P2P網路中,比特幣有一種特別的演算法,大概每小時產生300個,這個產量是由網路自動調節的,因為你無法控制大部分網路節點,所以無法修改每個用戶的演算法來加快貨幣產量。形象地說,比特幣是由遍布世界各個角落的計算機「挖礦」而得的。如果你想要獲得比特幣,只需要安裝挖礦軟體,你的計算機就開始進行大量運算,這就是挖礦了。不管用哪一台電腦挖礦,在比特幣誕生初期都很容易獲得(50個比特幣)。早在今年1月,50比特幣還不值15美元,但是在6月9日,1個比特幣的價值高達29.55美元,如果你把它們交易出去,就能換回1500美元的真金實銀了。不過現在,挖礦需要擁有高性能的計算機,一些參與其中的開發者說估計普通的筆記本工作五年才能得到1個比特幣。為什麼會這樣?我們還得從貨幣本身說起。經濟學告訴我們,貨幣因交易而存在。比特幣的價值也就在交易本身。為了讓比特幣從一個賬戶輸送到另一個賬戶,得有一個安全通道,製造安全通道,則需要消耗大量能源,因此整個比特幣用戶群,要獎勵那個造幣者(50比特幣)。換言之,他挖礦成功。挖礦,本質是P2P網路上製造新區塊(block,每個區塊包含50比特幣)的過程。總之,軟體演算法決定了製造一個全網路都認可的新區塊很難,如果參與者越多,新區塊產生得就越慢。如同挖礦,隨著最容易接近的資源的耗竭(假設沒有新發現的礦藏),供應量就漸漸減少——演算法規定,到2013年每一個區塊只能生成25個比特幣,2017年就只能生成12.5個,依次類推,到2030年總計數量就停留在一個平台期大約在2100萬。從圖形上看,這將是一條趨於平緩的曲線。現實也驗證了這一點。隨著比特幣幣值上升,參與者暴增,挖礦越來越難。在論壇上,挖礦者討論如何用乾冰、液氮來冷卻計算機,提升CPU頻率,加快挖礦軟體運行速度,或者定製頂級電腦顯卡、提高網路速度來生產更多的比特幣。英國衛報消息稱,有人過於神秘地在家挖礦,甚至遭到了警察的突然襲擊,警方誤認為此人在販毒。最近,數字安全公司賽門鐵克發現了一種新型木馬病毒,這個名為Coinbit的惡意程序用於盜號,從而便於黑客侵入用戶的比特幣錢包並竊取其中內容。在6·19盜號事件前,LulzSec黑客團體和Anonymous團隊的成員就已經發現,有更好的辦法來挖礦——用別人的電腦。這些黑客團體主要依靠僵屍網路進行伺服器攻擊而出名,其中有成員發現,有些挖礦者居然用他們的僵屍網路來挖礦。這些挖礦者據說也是黑客,他們利用僵屍網路控制了超過10萬台電腦。以目前網路的規模,可以大大提高挖礦的效率,估計每天生產400到500個比特幣,目前價值大概超過8000美元(截至2011/6/28,1比特幣=16.9美元)。在比特幣社區上的人分為兩派,一派否認有人利用僵屍網路挖礦,另一派則說這是個事實,而且承認僵屍網路的運算出現大幅度下降。一位匿名人士稱,明顯有人認為參與到挖礦中比起攻擊挖礦能獲得更高的回報。
② thinkphp 框架 寫 paypal 支付
PAYPAL API的客戶端ID和密鑰
③ 求教,比特幣錢包怎麼與php建立連接
節點軟體bitcoind除了完整實現比特幣的核心協議,還包含了一個可選但是重要 的功能模塊 —— 錢包:
可以把錢包視為保存著你所有密鑰與地址的保險箱,同時也封裝了比特幣很多 偏技術性的概念與細節,使其可以被極客之外的人群所理解和接受。因此在默認 配置下,bitcoind會啟用節點錢包。如果你希望禁止錢包功能,例如你准備自己 管理密鑰與地址,那麼可以在配置文件中設置disablewallet選項:
disablewallet=1
錢包模塊會跟蹤其管理的所有地址相關的交易,因此可以及時地更新錢包的余額信息。 這一功能非常重要,因為比特幣中沒有賬戶的概念,比特幣是散落在一個個交易 中的電子現金,如果沒有錢包幫助跟蹤與我們地址相關的交易,那麼想算清楚自己 總共持有多少個比特幣都很困難。
節點提供的很多RPC調用都是由錢包模塊來實現的。例如,當我們調用getnewaddress命令時,就是由錢包模塊來生成密鑰和地址並自動加入到錢包中, 因此其相關的交易也會自動地影響錢包的余額。同樣,當我們調用getbalance時, 也是由錢包模塊來匯總所有地址上的比特幣並返回總金額。
以上內容摘抄自:比特幣開發教程
④ thinkPHP框架的項目怎麼做支付寶支付功能
1、在配置文件中Conf/Config.php文件中對支付寶相關參數進行配置:
//支付寶配置參數
'alipay_config'=>array(
'partner' =>'20********50', //這里是你在成功申請支付寶介面後獲取到的PID;
'key'=>'9t***********ie',//這里是你在成功申請支付寶介面後獲取到的Key
'sign_type'=>strtoupper('MD5'),
'input_charset'=> strtolower('utf-8'),
'cacert'=> getcwd().'\\cacert.pem',
'transport'=> 'http',
),
//以上配置項,是從介麵包中alipay.config.php 文件中復制過來,進行配置;
'alipay' =>array(
//這里是賣家的支付寶賬號,也就是你申請介面時注冊的支付寶賬號
'seller_email'=>'[email protected]',
//這里是非同步通知頁面url,提交到項目的Pay控制器的notifyurl方法;
'notify_url'=>'http://www.xxx.com/Pay/notifyurl',
//這里是頁面跳轉通知url,提交到項目的Pay控制器的returnurl方法;
'return_url'=>'http://www.xxx.com/Pay/returnurl',
//支付成功跳轉到的頁面,我這里跳轉到項目的User控制器,myorder方法,並傳參payed(已支付列表)
'successpage'=>'User/myorder?ordtype=payed',
//支付失敗跳轉到的頁面,我這里跳轉到項目的User控制器,myorder方法,並傳參unpay(未支付列表)
'errorpage'=>'User/myorder?ordtype=unpay',
),
復制代碼
2、新建一個PayAction控制器代碼如下:
<?php
class PayAction extends Action{
//在類初始化方法中,引入相關類庫
public function _initialize() {
vendor('Alipay.Corefunction');
vendor('Alipay.Md5function');
vendor('Alipay.Notify');
vendor('Alipay.Submit');
}
//doalipay方法
/*該方法其實就是將介面文件包下alipayapi.php的內容復制過來
然後進行相關處理
*/
public function doalipay(){
/*********************************************************
把alipayapi.php中復制過來的如下兩段代碼去掉,
第一段是引入配置項,
第二段是引入submit.class.php這個類。
為什麼要去掉??
第一,配置項的內容已經在項目的Config.php文件中進行了配置,我們只需用C函數進行調用即可;
第二,這里調用的submit.class.php類庫我們已經在PayAction的_initialize()中已經引入;所以這里不再需要;
*****************************************************/
// require_once("alipay.config.php");
// require_once("lib/alipay_submit.class.php");
//這里我們通過TP的C函數把配置項參數讀出,賦給$alipay_config;
$alipay_config=C('alipay_config');
/**************************請求參數**************************/
$payment_type = "1"; //支付類型 //必填,不能修改
$notify_url = C('alipay.notify_url'); //伺服器非同步通知頁面路徑
$return_url = C('alipay.return_url'); //頁面跳轉同步通知頁面路徑
$seller_email = C('alipay.seller_email');//賣家支付寶帳戶必填
$out_trade_no = $_POST['trade_no'];//商戶訂單號 通過支付頁面的表單進行傳遞,注意要唯一!
$subject = $_POST['ordsubject']; //訂單名稱 //必填 通過支付頁面的表單進行傳遞
$total_fee = $_POST['ordtotal_fee']; //付款金額 //必填 通過支付頁面的表單進行傳遞
$body = $_POST['ordbody']; //訂單描述 通過支付頁面的表單進行傳遞
$show_url = $_POST['ordshow_url']; //商品展示地址 通過支付頁面的表單進行傳遞
$anti_phishing_key = "";//防釣魚時間戳 //若要使用請調用類文件submit中的query_timestamp函數
$exter_invoke_ip = get_client_ip(); //客戶端的IP地址
/************************************************************/
//構造要請求的參數數組,無需改動
$parameter = array(
"service" => "create_direct_pay_by_user",
"partner" => trim($alipay_config['partner']),
"payment_type" => $payment_type,
"notify_url" => $notify_url,
"return_url" => $return_url,
"seller_email" => $seller_email,
"out_trade_no" => $out_trade_no,
"subject" => $subject,
"total_fee" => $total_fee,
"body" => $body,
"show_url" => $show_url,
"anti_phishing_key" => $anti_phishing_key,
"exter_invoke_ip" => $exter_invoke_ip,
"_input_charset" => trim(strtolower($alipay_config['input_charset']))
);
//建立請求
$alipaySubmit = new AlipaySubmit($alipay_config);
$html_text = $alipaySubmit->buildRequestForm($parameter,"post", "確認");
echo $html_text;
}
/******************************
伺服器非同步通知頁面方法
其實這里就是將notify_url.php文件中的代碼復制過來進行處理
*******************************/
function notifyurl(){
/*
同理去掉以下兩句代碼;
*/
//require_once("alipay.config.php");
//require_once("lib/alipay_notify.class.php");
//這里還是通過C函數來讀取配置項,賦值給$alipay_config
$alipay_config=C('alipay_config');
//計算得出通知驗證結果
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();
if($verify_result) {
//驗證成功
//獲取支付寶的通知返回參數,可參考技術文檔中伺服器非同步通知參數列表
$out_trade_no = $_POST['out_trade_no']; //商戶訂單號
$trade_no = $_POST['trade_no']; //支付寶交易號
$trade_status = $_POST['trade_status']; //交易狀態
$total_fee = $_POST['total_fee']; //交易金額
$notify_id = $_POST['notify_id']; //通知校驗ID。
$notify_time = $_POST['notify_time']; //通知的發送時間。格式為yyyy-MM-dd HH:mm:ss。
$buyer_email = $_POST['buyer_email']; //買家支付寶帳號;
$parameter = array(
"out_trade_no" => $out_trade_no, //商戶訂單編號;
"trade_no" => $trade_no, //支付寶交易號;
"total_fee" => $total_fee, //交易金額;
"trade_status" => $trade_status, //交易狀態
"notify_id" => $notify_id, //通知校驗ID。
"notify_time" => $notify_time, //通知的發送時間。
"buyer_email" => $buyer_email, //買家支付寶帳號;
);
if($_POST['trade_status'] == 'TRADE_FINISHED') {
//
}else if ($_POST['trade_status'] == 'TRADE_SUCCESS') { if(!checkorderstatus($out_trade_no)){
orderhandle($parameter);
//進行訂單處理,並傳送從支付寶返回的參數;
}
}
echo "success"; //請不要修改或刪除
}else {
//驗證失敗
echo "fail";
}
}
/*
頁面跳轉處理方法;
這里其實就是將return_url.php這個文件中的代碼復制過來,進行處理;
*/
function returnurl(){
//頭部的處理跟上面兩個方法一樣,這里不羅嗦了!
$alipay_config=C('alipay_config');
$alipayNotify = new AlipayNotify($alipay_config);//計算得出通知驗證結果
$verify_result = $alipayNotify->verifyReturn();
if($verify_result) {
//驗證成功
//獲取支付寶的通知返回參數,可參考技術文檔中頁面跳轉同步通知參數列表
$out_trade_no = $_GET['out_trade_no']; //商戶訂單號
$trade_no = $_GET['trade_no']; //支付寶交易號
$trade_status = $_GET['trade_status']; //交易狀態
$total_fee = $_GET['total_fee']; //交易金額
$notify_id = $_GET['notify_id']; //通知校驗ID。
$notify_time = $_GET['notify_time']; //通知的發送時間。
$buyer_email = $_GET['buyer_email']; //買家支付寶帳號;
$parameter = array(
"out_trade_no" => $out_trade_no, //商戶訂單編號;
"trade_no" => $trade_no, //支付寶交易號;
"total_fee" => $total_fee, //交易金額;
"trade_status" => $trade_status, //交易狀態
"notify_id" => $notify_id, //通知校驗ID。
"notify_time" => $notify_time, //通知的發送時間。
"buyer_email" => $buyer_email, //買家支付寶帳號
);
if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
if(!checkorderstatus($out_trade_no)){
orderhandle($parameter); //進行訂單處理,並傳送從支付寶返回的參數;
}
$this->redirect(C('alipay.successpage'));//跳轉到配置項中配置的支付成功頁面;
}else {
echo "trade_status=".$_GET['trade_status'];
$this->redirect(C('alipay.errorpage'));//跳轉到配置項中配置的支付失敗頁面;
}
}else {
//驗證失敗
//如要調試,請看alipay_notify.php頁面的verifyReturn函數
echo "支付失敗!";
}
}
}
?>
復制代碼
3、這里有幾個支付處理過程中需要用到的函數,我把這些函數寫到了項目的Common/common.php中,這樣不用手動調用,即可直接使用這些函數,代碼如下:
//////////////////////////////////////////////////////
//Orderlist數據表,用於保存用戶的購買訂單記錄;
/* Orderlist數據表結構;
CREATE TABLE `tb_orderlist` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(11) DEFAULT NULL,購買者userid
`username` varchar(255) DEFAULT NULL,購買者姓名
`ordid` varchar(255) DEFAULT NULL,訂單號
`ordtime` int(11) DEFAULT NULL,訂單時間
`proctid` int(11) DEFAULT NULL,產品ID
`ordtitle` varchar(255) DEFAULT NULL,訂單標題
`ordbuynum` int(11) DEFAULT '0',購買數量
`ordprice` float(10,2) DEFAULT '0.00',產品單價
`ordfee` float(10,2) DEFAULT '0.00',訂單總金額
`ordstatus` int(11) DEFAULT '0',訂單狀態
`payment_type` varchar(255) DEFAULT NULL,支付類型
`payment_trade_no` varchar(255) DEFAULT NULL,支付介面交易號
`payment_trade_status` varchar(255) DEFAULT NULL,支付介面返回的交易狀態
`payment_notify_id` varchar(255) DEFAULT NULL,
`payment_notify_time` varchar(255) DEFAULT NULL,
`payment_buyer_email` varchar(255) DEFAULT NULL,
`ordcode` varchar(255) DEFAULT NULL, //這個欄位不需要的,大家看我西面的修正補充部分的說明!
`isused` int(11) DEFAULT '0',
`usetime` int(11) DEFAULT NULL,
`checkuser` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
*/
//在線交易訂單支付處理函數
//函數功能:根據支付介面傳回的數據判斷該訂單是否已經支付成功;
//返回值:如果訂單已經成功支付,返回true,否則返回false;
function checkorderstatus($ordid){
$Ord=M('Orderlist');
$ordstatus=$Ord->where('ordid='.$ordid)->getField('ordstatus');
if($ordstatus==1){
return true;
}else{
return false;
}
}
//處理訂單函數
//更新訂單狀態,寫入訂單支付後返回的數據
function orderhandle($parameter){
$ordid=$parameter['out_trade_no'];
$data['payment_trade_no'] =$parameter['trade_no'];
$data['payment_trade_status'] =$parameter['trade_status'];
$data['payment_notify_id'] =$parameter['notify_id'];
$data['payment_notify_time'] =$parameter['notify_time'];
$data['payment_buyer_email'] =$parameter['buyer_email'];
$data['ordstatus'] =1;
$Ord=M('Orderlist');
$Ord->where('ordid='.$ordid)->save($data);
}
⑤ 有高手用ThinkPHP集成過paypal快速支付嗎有很急的問題請教,急急!
Paypal有兩種支付介面方式:Auto return和IPN方式. pp代收
IPN方式通過伺服器端直接提交信息的方式,最大限度的避免了由於用戶中途關閉瀏覽器等引起的掉單
但如果您是個人免費PAYPAL帳戶,就只能使用Auto Return方式.
IPN只對Business 或 Premier PayPal account開放
下面分別說一下兩種支付介面方式下分別如何操作
Auto return 方式 代收Paypal
1.進入paypal後台,
2.開啟Auto Return及Payment Data Transfer
點擊 My Account標簽.
點擊the Profile 子標簽.
點擊Website Payment Preferences鏈接
點擊Auto Return節的On單選項
點擊Payment Data Transfer節的On單選項
點擊save按鈕進行保存
3在保存後,你可以看到在Payment Data Transfer小節的下方出現了一串名為Identity Token的字元串,把它記錄下來備後用;
4.進入溫州網上商城後台進入支付方式設置
選擇PAYPAL支付(Auto return方式) ---在某些版本下可能誤為Auto reply
填入您的PAYPAL帳號
在私鑰位置填入您前面記錄的Identity Token字元串
(注:請查看一下,由於原來我們的私鑰資料庫欄位長為40,但PAYPAL的Identity Token達到了60位,因此請先更新一下資料庫)
選擇您願意接受的貨幣種類
保存.
⑥ 誰有thinkphp3.2.3支付寶充值的功能案例
http://www.thinkphp.cn/code/240.html
⑦ 安裝中付出現sign驗校失敗原因
1.獲取$_GET中key為不為sign、sign_type並且value不為空的項
本文來自http://leo108.com
2.將新生成的數組按照key的ascii值進行排序(使用ksort函數)
本文來自leo108's blog
3.把數組所有元素,按照「key=value」的模式用「&」字元拼接成字元串
http://leo108.com/pid-1921.asp
4.把這個字元串和支付寶的安全驗證碼(配置中的「key」這一項)拼接,並計算md5
未經允許嚴禁轉載
5.將計算出的md5值與$_GET['sign']比較,如果相同則Sign驗證通過
未經允許嚴禁轉載
也就是說,Sign驗證失敗的原因就在於$_GET數組拼接成字元串過程採集者爛JJ
於是找了條同步返回的日誌,因為是GET方式返回的,所以所有參數都有記錄,通過上述方式計算md5,結果發現和支付寶伺服器返回的md5是一致的,大概就可以猜出是Thinkphp對$_GET數組的改造導致的
ThinkPHP
在代碼中將$_GET數組輸出,發現多了一項_URL_,這是使用Thinkphp的pathinfo模式導致,可以通過$_GET['_URL_']來獲取url信息。
本文來自http://leo108.com
而支付寶伺服器非同步返回卻沒有這個問題,是因為非同步返回使用的是POST方式,驗證的也是$_POST數組,Thinkphp對$_GET的改造不影響到Sign驗證。
ThinkPHP
所以解決方案是在進行Sign驗證之前將$_GET中的_URL_刪除,unset($_GET['_URL_'])Thinkphp中使用支付寶介面同步返回Sign驗證失敗原因分析
⑧ 比特幣錢包 怎麼樣
用你的Android手機來支付和收取Bitcoin比特幣,這是一個全功能的Bitcoin錢包。請注意,這個應用還在測試,仍然存在丟失Bitcoin幣的可能
比特幣是一種網路虛擬貨幣,跟騰訊公司的Q幣類似,你可以使用比特幣購買一些虛擬的物品,比如網路游戲當中的衣服、帽子、裝備等,只要有人接受,你也可以使用比特幣購買現實生活當中的物品。 比特幣與其他虛擬貨幣最大的不同,是其總數量是非常有限的,具有極強的稀缺性。該貨幣系統在前4年內只有不超過1050萬個,之後的總數量將被永久限制在2100萬個之內。還有一點是,你可以用電腦生產比特幣。
詳細介紹
比特幣(Bitcoin)是一種由開源的P2P軟體產生的電子貨幣。也有人將比特幣意譯為「比特金」。虛擬貨幣比特幣(BitCoin)的概念最初由中本聰(Satoshi Nakamoto)在2009年提出,現在比特幣也用於指稱bitcoin 根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。與大多數貨幣不同的是,比特幣不依賴於特定的中央發行機構,而是使用遍布整個P2P網路節點的分布式資料庫來記錄貨幣的交易,並使用密碼學的設計來確保貨幣流通各個環節安全性。例如,比特幣只能被它的真實擁有者使用,而且僅僅一次,支付完成之後原主人即失去對該份額比特幣的所有權。
特徵
比特幣被設計為允許匿名的所有權與使用權,比特幣既可以被以計算機文件的形式(wallet)保存在個人電腦中,也可以儲存在第三方託管服務。不管以何種形式保存,比特幣都可以通過比特幣地址發送給互聯網上的任意一個人。P2P的分布式特性與不存在中央管理機制的設計確保了任何機構都不可能操控比特幣的價值,或者製造通貨膨脹。
⑨ 比特幣 網站 用PHP寫好嗎
後台語言無所謂,php java 都可以了 ,不過php開發速度可能會快點。如果用php開發的話,yii ,kohana,zend framework,thinkphp都可以。我一般用kohana和yii。
⑩ 比特幣的第三方錢包用什麼語言開發的
比特幣api是最受歡迎的比特幣開發第三方api之一,提供支付處理、錢包服務、市場行情數據等功能,提供針對多種語言的封裝開發包,比如python、java、c#、ruby、PHP和node