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