??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲精品国产亚洲老地址,在线亚洲人成电影网站色www,亚洲制服一区http://www.aygfsteel.com/lina666/Ƣ迎来到恩娜的博?/description>zh-cnTue, 24 Jun 2025 16:56:35 GMTTue, 24 Jun 2025 16:56:35 GMT60- Paypal 的用及详解http://www.aygfsteel.com/lina666/archive/2010/06/23/paypal.htmllinalinaWed, 23 Jun 2010 01:12:00 GMThttp://www.aygfsteel.com/lina666/archive/2010/06/23/paypal.htmlhttp://www.aygfsteel.com/lina666/comments/324228.htmlhttp://www.aygfsteel.com/lina666/archive/2010/06/23/paypal.html#Feedback0http://www.aygfsteel.com/lina666/comments/commentRss/324228.htmlhttp://www.aygfsteel.com/lina666/services/trackbacks/324228.html安装 PayPal SDKQ您q需要一些扩展功能: PEAR、cURL ?SSL?管它们可以?
php.ini 中加载,但?PHP ~译可得到最佳结果?br style="margin: 0px; padding: 0px;
line-height: 1.7;" />
充分讄好环境后Q您需要下?PayPal PHP SDKQ其中包括服? PayPal PEAR
E序包?PayPal Web 控制台、SDK 文档?PDF 信息文档?Q参见下?#8220;无法使用 Web 控制?#8221;部分中关?Web
控制台的重要注意事项。) 在下载和提取此文件后Q您需要运行一些命令行操作Q?br style="margin: 0px; padding:
0px; line-height: 1.7;" />
pear install --alldeps /Services_PayPal/package.xml
cp -r /WebConsole
此命令可以安装一些其它的 PEAR E序包,为您提供一个功能完善的 PayPal SDK?
在浏览器中访?http://localhost/WebConsole 面后, PayPal
配置文g理工具显CZ条问候消息,您可以在此处?PayPal SDK 的有效性?常见问题包括丢失 cURL ?SSL 的安装,通过修改
php.ini 或重新编?PHPQ然后再ơ运?PEAR 命oQ这些问题将得到修复?如果因ؓ托管限制或安全性问题而无法安?PEAR
或某U必要的扩展功能Q您q可以用下Ҏq的标准l帐?br style="margin: 0px; padding: 0px;
line-height: 1.7;" />
采用E_的方?#8230;…
通过 SDK 使用 API 是?PayPal 功能的一U灵zR有效的方式?API 支持的两U支付方式包括:
直接付款Q用此方式可以攉|站上的详细帐单Q从用户的信用卡收费Q全
部工作在自己|站上完成?q种Ҏ适合拥有 https 安全应用E序和基架构Q用于存储客户和购物车信息)的大型机构?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
快速结帐:q种方式允许用户使用
PayPal 帐户信息和选择发货方式Q不需要在|站上重新输入信息,从而节省了旉。同Ӟ
q种方式不需要应用程序存储购买者信息的本地副本Q管理此方式时只需要最的额外安全性基架构?br style="margin: 0px;
padding: 0px; line-height: 1.7;" />
其它 API Ҏ(文中q未完全涉及Q包括:
慈善捐款Q根据用L购物情况Q提供有?
慈善捐款的实时信息?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
发货Q如?
销售的是现实品,则允许用户选择发货商、发货方式、保险和其它属性?
在用L实购买货物之前,您就可以向用h供发货的成本Q或者也可以使用此特性在产品昄面提供更准的h?br style="margin:
0px; padding: 0px; line-height: 1.7;" />
退ƾ:提供向用户退ƄҎ?br style="margin:
0px; padding: 0px; line-height: 1.7;" />
E款Q根据每件货物或每个购物车收E,q当地将E款昄在收据和发票
上?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
订阅Q?
灉|地定义现实货物和数字货物的@环订阅?br style="margin: 0px; padding: 0px; line-height:
1.7;" />
SDK q提供了q泛?eBay 支持Q尽其价g在我们讨论的范围内?br style="margin: 0px;
padding: 0px; line-height: 1.7;" />
……或者采用简易方?br style="margin: 0px;
padding: 0px; line-height: 1.7;" />
如果 SDK 的功能远q超出用L需求,在此情况下,PayPal 提供了另一U解x案?标准l帐不?
SOAPQ只依赖于在应用E序?PayPal 安全服务器间传?HTML 表单倹{?要用标准结帐,您只需要生成一个表单,该表单可以提交适当?
POST 变量Q如下面的示例所C:
<form
action="https://sandbox.paypal.com/cgi-bin/webscr" method="post">
<input
type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload"
value="1">
<input
type="hidden" name="business" value="sales@widgetco.com">
<input
type="hidden" name="item_name_1" value="Big Widget">
<input
type="hidden" name="amount_1" value="100.00">
<input type="hidden"
name="item_name_2" value="Little Widget">
<input type="hidden" name="amount_2"
value="1.00">
<input type="submit" value="PayPal">
</form>
提交表单后,用户进?PayPal 的服务器Q输入帐单信息?
在完成信息验证和帐单授权机制后,用户返回您在网站上定义的一个位|?如果您仅仅是攉捐款Q而不是销售物品,那么您的工作已经完成了!
然而,对于其它情况Q用户可使用大量的变量来定制功能、货币和昄斚w的体验?Q参见参考指南。)
使用带有 notify_url 变量的即时付N知 (IPN)
Ӟ一旦用户在指定的地点完成付ƾ,您的应用E序׃得到通知 ?
您可以用定制的链接提供专用用户标识Q例如,允许对在U内容进行即时访问或触发一个批发商的订单?
另外Q通过使用发票和定制变量,您可以创Z个机构,?PayPal 的记录限制在您自q域中?
如果应用E序已经保存了用户名和地址信息Q您可以通过一l变量(包括 address1 、city ?countryQ将q些信息传递给
PayPal Q以侉K先填充相应的字段?br style="margin: 0px; padding: 0px; line-height:
1.7;" />
标准l帐的基本方?
中也包含 API 为收集非盈利性资金而提供的许多Ҏ, 例如Q可以应用到每个购物车或每g货物的税ƾ、处理和发货变量?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
cpp_ pd变量Q包?
cpp_header_image、cpp_headerback_color、cpp_headerborder_color ?
csQ允许您_调整用户?PayPal 服务器上的体验,q些变量用于讄支付面的背景颜艌Ӏ?
如果q种Ҏ能够满应用E序的需求,标准l帐是一U非常经有效的解决Ҏ?与基?API
的直接付ƾ方式不同,标准l帐q不定每月的费用,q且实施期间的开发工作非常少?br style="margin: 0px; padding:
0px; line-height: 1.7;" />
准备付款
要?PayPal APIQ首先要熟悉开发h员中心?您将在开发h员中心徏立帐P以便?Sandbox
中创Z方与卖方的示例帐戗?CZ帐户创徏完毕后,使用该帐L录到 Sandbox 显C拥有资金的有效 PayPal 帐户?
您的买方可以从其?Sandbox 帐户购买物品Q您的卖方可以将货款退q给其他 Sandbox 帐户Q这些都不需要现金{U,也不需要收费代理?
PayPal 的集成中心提供了极好的逐步指南Q注意,W?3 步是我在前面介绍的安装过E)Q我在此处提供该指南的概述?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
首先Q您需要在 developer.paypal.com
注册一个帐P此网|讉K各种开发h员资源的中心点,用于创徏 Sandbox 帐户?之后Q您在 developer.paypal.com ?
Sandbox 选项卡中创徏一个买方示例和一个卖方示例。这工作非常简单,Z使创建的内容有意义,您只需要够的创造力?
例如Q在提示您输入银行帐户信息时Qؓ了方便用,您将pȝ提供的虚拟帐户号作ؓ银行的名U?
另外Q您可以Z方帐户和卖方帐户使用相同的密码,因ؓ此服务器发生密码泄露的风险很低??Sandbox
中学习的Ҏ与生时用的Ҏ完全相同,从而减了培训和测试时间?br style="margin: 0px; padding: 0px;
line-height: 1.7;" />
?Sandbox 中最后一个重要的步骤是创建测试证书,q是一个小型文本文Ӟ其中包含与每个 API 调用一起用的密钥?
要创Z个证书,您需要登录到卖方 Sandbox 帐户Q单?ProfileQ然后依ơ选择 API Access ?View or
Remove Credentials?记录此文件和密码Q您在配置应用E序时用到它们?br style="margin: 0px;
padding: 0px; line-height: 1.7;" />
回到 developer.paypal.comQ您可以查看试证书的信息,也可以从 Test
Certificates 选项卡下载测试证书?此处不能查看 API 密码Q要获得此信息,您必重新登录到
http://www.sandbox.paypal.comQ然后访问上qC|?br style="margin: 0px; padding:
0px; line-height: 1.7;" />
直接付款处理
?PayPal 交互的最灉|的方式是通过 SDK 来完成,SDK 会将Z SOAP 的请求抽象成可管理的信息?
不同调用要完成的目标不同Q但执行的步骤基本相同: 认证、操作和响应程?W一个步骤,认证Q来?SDK
CZQ同样需要用在下方的快速结帐方法中?昄的值用?Sandbox 试Q?需要ؓ生创徏带有认证详细信息的新证书?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
$certfile = dirname(__FILE__) .
'/sdk-seller_cert.pem';
$apiusername = '';
$apipassword = '';
$subject = null;
$environment = 'Sandbox';
$handler =&
ProfileHandler_Array::getInstance(array(
'username' => $apiusername,
'certificateFile' => $certfile,
'subject' => $subject,
'environment' =>
$environment));
$profile =&
APIProfile::getInstance($apiusername, $handler);
$profile->setAPIPassword($apipassword);
$caller =&
Services_PayPal::getCallerServices($profile);
认证完成后,应用E序已经准备好处?API h?
在直接付ƾ时Q您的应用程序必L能力、有责Q创徏和存储订单的状态,qؓ订单创徏收据Q?
在下一个示例中Q我们将假定应用E序已将所有相关信息存储到以下表格中: Customer、Billing_Method、Order ?
Line_item?本示例?PHP 数据对象 (PDO)Q在此情况下Q传l的 OCI8 Ҏ同样有效?br style="margin:
0px; padding: 0px; line-height: 1.7;" />
$db = new PDO('oci:', 'scott',
'tiger' 'HR', 'HR');
$dbcustomer
= $dbh->query("SELECT * " .
"FROM customer " .
"WHERE customerid = '{$_SESSION'}");
$dborder =
$dbh->query("SELECT * " .
"FROM order " .
"WHERE customerid = '{$_SESSION}' " .
"AND orderid =
'{$_SESSION}'");
$dbbilling
= $dbh->query("SELECT * " .
"FROM billing_method " .
"WHERE billingid = '{$dborder}'");
$dblineitemtotals =
$dbh->query("SELECT sum(amount) total " .
"FROM line_item " .
"WHERE customerid =
'{$_SESSION}' " .
"AND orderid = '{$_SESSION}'");
$name =&
Services_PayPal::getType('PersonNameType');
$name->setFirstName($dbcustomer['fname']);
$name->setLastName($dbcustomer['lname']);
$address =&
Services_PayPal::getType('AddressType');
$address->setStreet1($dbbilling['street1']);
$address->setCityName($dbbilling['city']);
$address->setStateOrProvince($dbbilling['state']);
$address->setCountry($dbbilling['country']);
$address->setPostalCode($dbbilling['zip']);
$payer =&
Services_PayPal::getType('PayerInfoType');
$payer->setPayerName($name);
$payer->setPayerCountry('US');
$payer->setAddress($address);
$cc =&
Services_PayPal::getType('CreditCardDetailsType');
$cc->setCreditCardType($dbbilling['cardtype']);
$cc->setCreditCardNumber($dbbilling['cardnumber']);
$cc->setExpMonth($dbbilling['expmonth']);
$cc->setExpYear($dbbilling['expyear']);
$cc->setCardOwner($payer);
$amount =&
Services_PayPal::getType('BasicAmountType');
$amount->setval($dblineitemtotals['total']);
$amount->setattr('currencyID',
'USD');
$pdt
=& Services_PayPal::getType('PaymentDetailsType');
$pdt->setOrderTotal($amount);
$details =&
Services_PayPal::getType('DoDirectPaymentRequestDetailsType');
$details->setPaymentAction('Authorization');
$details->setPaymentDetails($pdt);
$details->setCreditCard($cc);
$details->setIPAddress('127.0.0.1');
$details->setMerchantSessionId('merchantId');
$ddp =&
Services_PayPal::getType('DoDirectPaymentRequestType');
$ddp->setDoDirectPaymentRequestDetails($details);
此时Q?PayPal
执行h的直接付ƾ?Z解发生的情况Q现在,应用E序会获取第三步中的信息Q?响应处理?br style="margin: 0px;
padding: 0px; line-height: 1.7;" />
$response =
$caller->DoDirectPayment($ddp);
此响应中q回的各U字D|供了有关事务成功的信息,以及事务?ID。通过存储?ID q将它提供给后面?
API 调用Q应用程序将能够获取有关事务的详l信息,q将Ҏq些信息生成另一个表根{?br style="margin: 0px;
padding: 0px; line-height: 1.7;" />
$d =&
Services_PayPal::getType('GetTransactionDetailsRequestType');
$d->setTransactionId('');
$response =
$caller->GetTransactionDetails($d);
无法使用 Web 控制?br style="margin: 0px; padding:
0px; line-height: 1.7;" />
在撰写本文时Q随上述 SDK 下蝲一h供的 Web 控制台由于丢׃重要目录而停止工作?
然而,此时可以下蝲包含所有必需文g的存档?控制台能够测?API 调用Q生?PHP 代码片断Q从而达成您的目标?通过本文?SDK
参考中的一些调查,您可以通过览器方便地查看?Sandbox 发出的所?API 调用?br style="margin: 0px;
padding: 0px; line-height: 1.7;" />
快速结帐流E?br style="margin: 0px; padding: 0px;
line-height: 1.7;" />
快速结帐方式介于强大的直接付款方式和简L标准l帐方式之间?利用快速结帐和Z API
的方法,用户可以在您的网站完成订单创E,然后转至 PayPal 处理所有帐单和发货信息?
在用快速结帐时Q用户只需为所有商品输入一ơ帐户信息,而您的应用程序也不需要存储这些信??q在安全性和开发方面具有明昄优势?
同直接付ƾ方式相同,通过存储事务 IDQ应用程序可以利用其?API 调用获取事物的详l信息?快速结帐可以利用上文中描述?
IPNQ从而允许其它实时处理选项?下面的代码段来自 SDK CZ?br style="margin: 0px; padding: 0px;
line-height: 1.7;" />
$amount =&
Services_PayPal::getType('BasicAmountType');
$amount->setval();
$amount->setattr('currencyID',
'USD');
$ecd =&
Services_PayPal::getType('SetExpressCheckoutRequestDetailsType');
$ecd->setOrderTotal($amount);
$ecd->setReturnURL('http://widgetco.com/return');
$ecd->setCancelURL('http://widgetco.com/cancel');
$ec =&
Services_PayPal::getType('SetExpressCheckoutRequestType');
$ec->setSetExpressCheckoutRequestDetails($ecd);
$response =
$caller->SetExpressCheckout($ec);
此调用的l果提供一个o牌,您可以将其添加到一个链路,或者在|站上将光定向?PayPal ?
然后Q用户?PayPal 处理业务。在操作成功或失败后Q系l将用户重定向到您的|站?在本CZ中,调用的页面返回将向您的应用程序发送以?
API 调用Q?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
$ecd
=& Services_PayPal::getType('GetExpressCheckoutDetailsRequestType');
$ecd->setToken('');
$response =
$caller->GetExpressCheckoutDetails($ecd);
q里包含您需要的所有事务信息,但不包含信用卡号{敏感信息?
用户在您的网站上对这些D行确认后Q由最l?API 调用处理资金事务Q?br style="margin: 0px; padding: 0px;
line-height: 1.7;" />
$amount =&
Services_PayPal::getType('BasicAmountType');
$amount->setval();
$amount->setattr('currencyID',
'USD');
$pdt =&
Services_PayPal::getType('PaymentDetailsType');
$pdt->setOrderTotal($amount);
$details =&
Services_PayPal::getType('DoExpressCheckoutPaymentRequestDetailsType');
$details->setPaymentAction('Sale');
$details->setToken('');
$details->setPayerID('juser@jisp.com');
$details->setPaymentDetails($pdt);
$ecprt =&
Services_PayPal::getType('DoExpressCheckoutPaymentRequestType');
$ecprt->setDoExpressCheckoutPaymentRequestDetails($details);
$response =
$caller->DoExpressCheckoutPayment($ecprt);
同样Q在?updateChart q行q箋调用ӞChartData 引?
onResult ҎQ?br style="margin: 0px; padding: 0px; line-height: 1.7;" />
_root.chartData.onResult
= function() {
_root.chart.throbber._visible
= false;
drawChart(this);
}
快速结帐几乎与直接付款h相同的定?
性,同时q保持了标准l帐的保密和安全优势?br style="margin: 0px; padding: 0px; line-height:
1.7;" />
PayPal 支付处理的Q何一UŞ式都提供了收集在U付Ƅ有效方式?由实施者决定哪U方式更加适合Q?
标准l帐为小型机构提供了攉付款的能力,且不需要这些机构投资其它安全体pȝ构;在与当前的企业应用程序集成时Q直接付ƾ是理想的解x案;而快速结?
介于两者之_适合其更改成第三方产品?选择灉|性、安全性和实施便捷性之间的q点将允许您利用现有的 Oracle 基础架构获得在线支付功能?/span>

]]>
վ֩ģ壺
|
|
|
|
|
|
|
|
̨|
|
|
|
|
齭|
ڰ|
»Ȱ|
ɽ|
¬|
ï|
|
ɽ|
Ž|
|
|
|
|
۩|
Ϊ|
|
|
ɳ|
|
ʯɽ|
˫|
Ӵ|
|
|
|
|
|
ػ|