Øyv*_*nd 21 codeigniter paypal
我已经将paypal与paypal_helper集成到codeigniter中(并没有记住我发现它的地方,但它是Paypals原始代码的稍微重写版本,用于快速结账.我尝试调用此函数,
CallShortcutExpressCheckout($ paymentAmount,$ currencyCodeType,$ paymentType,$ returnURL,$ cancelURL)
将$ paymentAmount作为int发送,$ currencyCodeType作为"NOK"发送,$ paymentType作为"Sale"发送.
在Sandbox和live中,paypal网站上都没有显示金额...
可能有什么不对?
编辑,以进一步解释我的过程.我使用它,主要是在https://www.paypal-labs.com/integrationwizard/ecpaypal/cart.php中指定的.没有表格,这应该是可行的吗?在调用CallShortcutExpressCheckout函数时,paymentAmount可以作为标准变量发送:
$resArray = CallShortcutExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL);
$ack = strtoupper($resArray["ACK"]);
if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
{
RedirectToPayPal ( $resArray["TOKEN"] );
}
else
{
//Display a user friendly Error on the page using any of the following error information returned by PayPal
$ErrorCode = urldecode($resArray["L_ERRORCODE0"]);
$ErrorShortMsg = urldecode($resArray["L_SHORTMESSAGE0"]);
$ErrorLongMsg = urldecode($resArray["L_LONGMESSAGE0"]);
$ErrorSeverityCode = urldecode($resArray["L_SEVERITYCODE0"]);
echo "SetExpressCheckout API call failed. ";
echo "Detailed Error Message: " . $ErrorLongMsg;
echo "Short Error Message: " . $ErrorShortMsg;
echo "Error Code: " . $ErrorCode;
echo "Error Severity Code: " . $ErrorSeverityCode;
}
Run Code Online (Sandbox Code Playgroud)
令牌保存在数据库中.用户被重定向到Paypal,其中没有列出任何金额.
Rob*_*ert 51
由于您没有传递所谓的"订单项详细信息"(产品数据),因此PayPal不会显示总金额.
如果您只想显示当前购买的金额,请将买家重定向到https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxxx&useraction=commit(而不是https:// www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxx)
如果您要开始向PayPal发送订单项详细信息,请在SetExpressCheckoutAPI请求中包含以下内容:
// Total amount of the purchase, incl shipping, tax, etc
PAYMENTREQUEST_0_AMT=300.0
// Total amount of items purchased, excl shipping, tax, etc
PAYMENTREQUEST_0_ITEMAMT=300.0
// Authorize the funds first (Authorization), or capture immediately (Sale)?
PAYMENTREQUEST_0_PAYMENTACTION=Sale
// First item
L_PAYMENTREQUEST_0_NAME0=Item1
L_PAYMENTREQUEST_0_QTY0=1
L_PAYMENTREQUEST_0_AMT0=100.00
// Second item
L_PAYMENTREQUEST_0_NAME1=Item2
L_PAYMENTREQUEST_0_QTY1=1
L_PAYMENTREQUEST_0_AMT1=200.00
Run Code Online (Sandbox Code Playgroud)
如果您想在自己的历史中看到这一点,您还需要将其包含在内DoExpressCheckoutPayment.
这也发布在PHP paypal快速结账问题
Who*_*ome 14
在对凌乱的Paypal文档网站进行了广泛的阅读之后,这是2013年的一个简短的ExpressCheckout指南.我希望在paypal支付页面和商家交易历史页面上显示项目详细信息.
Paypal文档链接
您可以直接在Web浏览器上调用以下url方法,相应地更新令牌和payerid参数.
这是一种数字商品,因此不提供运费和手续费.单项行.提供金额和税费.不要求确认的送货地址,没有送货地址字段,不允许自由文本说明,付款人不需要paypal帐户,也不需要注册(solutiontype = sole).激活paypal网站上的信用卡部分(landingpage = billing).在paypal网站上使用自定义品牌标题.使用自定义字段为跟踪目的提供自己的值.商家网站交易记录必须显示商品详细信息(提供有关SetExpressCheckout和DoExpressCheckoutPayment方法的商品详情).
SetExpressCheckout方法打开一个新事务
https://api-3t.sandbox.paypal.com/nvp?
USER=<userid>
&PWD=<pwd>
&SIGNATURE=<mysig>
&METHOD=SetExpressCheckout
&VERSION=98
&PAYMENTREQUEST_0_PAYMENTACTION=SALE
&REQCONFIRMSHIPPING=0
&NOSHIPPING=1
&ALLOWNOTE=0
&SOLUTIONTYPE=Sole
&LANDINGPAGE=Billing
&BRANDNAME=MY+WEBSHOP+TITLE
&PAYMENTREQUEST_0_AMT=22.22
&PAYMENTREQUEST_0_TAXAMT=4.30
&PAYMENTREQUEST_0_ITEMAMT=17.92
&PAYMENTREQUEST_0_DESC=mypurdesc
&PAYMENTREQUEST_0_CUSTOM=custom1
&PAYMENTREQUEST_0_CURRENCYCODE=EUR
&L_PAYMENTREQUEST_0_NUMBER0=itemid1
&L_PAYMENTREQUEST_0_NAME0=MyItem1
&L_PAYMENTREQUEST_0_DESC0=Item1+description
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_AMT0=17.92
&L_PAYMENTREQUEST_0_TAXAMT0=4.30
&RETURNURL=https://myserver.com/webapp/paypal.jsp%3Fcmd=successexp
&CANCELURL=https://myserver.com/webapp/paypal.jsp%3Fcmd=cancelexp
Run Code Online (Sandbox Code Playgroud)
回复必须有ACK =成功或ACK = SuccessWithWarning,读取TOKEN值
将用户浏览器重定向到Paypal站点,给出令牌值
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<token>
Run Code Online (Sandbox Code Playgroud)
用户使用paypal帐户或信用卡.Paypal重定向用户返回或取消网址.重定向目标网址获取令牌和PayerID参数值.交易尚未完成,我们必须调用doExpressCheckoutPayment方法.
在屏幕上显示确认对话框(使用OK,CANCEL按钮)或简单案例提交交易并显示"谢谢,购买完成"消息.用户已经在paypal网站上接受了付款,并希望最终确定交易.
您可以在同一个请求 - 响应处理程序中或使用异步后台任务提交事务.Paypal网站可能暂时不可用,所以不要指望它立即工作.
如果重定向成功,则使用令牌和payerid提交事务
https://api-3t.sandbox.paypal.com/nvp?
USER=<userid>
&PWD=<pwd>
&SIGNATURE=<mysig>
&METHOD=DoExpressCheckoutPayment
&VERSION=98
&PAYMENTREQUEST_0_PAYMENTACTION=SALE
&PAYMENTREQUEST_0_AMT=22.22
&PAYMENTREQUEST_0_TAXAMT=4.30
&PAYMENTREQUEST_0_ITEMAMT=17.92
&PAYMENTREQUEST_0_CURRENCYCODE=EUR
&L_PAYMENTREQUEST_0_NUMBER0=itemid1
&L_PAYMENTREQUEST_0_NAME0=MyItem1
&L_PAYMENTREQUEST_0_QTY0=1
&L_PAYMENTREQUEST_0_AMT0=17.92
&L_PAYMENTREQUEST_0_TAXAMT0=4.30
&token=<token>
&payerid=<payerid>
Run Code Online (Sandbox Code Playgroud)
读取ACK =成功并验证字段
ACK=Success
PAYMENTINFO_0_PAYMENTSTATUS=Completed
PAYMENTINFO_0_ACK=Success
PAYMENTINFO_0_AMT=22.22 total amount must match
PAYMENTINFO_0_FEEAMT=0.99 (just for fun, read paypal comission fee)
PAYMENTINFO_0_CURRENCYCODE=EUR currency must match
Run Code Online (Sandbox Code Playgroud)
(可选)从Paypal读取交易详情
您可以在事务工作流程期间使用此功能,也可以在存储令牌以供日后使用时随时使
https://api-3t.sandbox.paypal.com/nvp
?USER=<userid>
&PWD=<pwd>
&SIGNATURE=<mysig>
&METHOD=GetExpressCheckoutDetails
&VERSION=98
&token=<token>
Run Code Online (Sandbox Code Playgroud)
读取响应参数.
ACK=Success
CHECKOUTSTATUS=PaymentActionCompleted
PAYMENTREQUEST_0_AMT=22.22
PAYMENTREQUEST_0_TAXAMT=4.30
PAYMENTREQUEST_0_CURRENCYCODE=EUR
Run Code Online (Sandbox Code Playgroud)
(可选)读取并保存事务ID,相关ID和令牌ID并写入logtable.
PAYMENTREQUEST_0_TRANSACTIONID=11E585715B622391E
CORRELATIONID=4534b683c335f
Run Code Online (Sandbox Code Playgroud)
如果有任何逻辑错误,我愿意收到评论.