我使用SetExpressCheckout的方法,成功获取令牌,之后,释放链接,用户可以付款:
https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<? echo $token[1]; ?>
查询代码:
$paypal_create_token = post('https://api-3t.paypal.com/nvp',
array(
'params' => array(
'USER' => $paypal_config['user'],
'PWD' => $paypal_config['password'],
'SIGNATURE' => $paypal_config['sign'],
'METHOD' => 'SetExpressCheckout',
'VERSION' => $paypal_config['version'],
'REQCONFIRMSHIPPING' => 0,
'NOSHIPPING' => 1,
'SOLUTIONTYPE' => 'Sole',
'LANDINGPAGE' => 'Billing',
'LOGOIMG' => $protocol.'://'.$host.'/images/logo197x40.png?'.$time,
'HDRIMG' => $protocol.'://'.$host.'/images/logo.png?'.$time,
'BRANDNAME' => mb_strtoupper($host),
'PAYMENTREQUEST_0_AMT' => $amount,
'PAYMENTREQUEST_0_ITEMAMT' => $amount,
'L_PAYMENTREQUEST_0_AMT0' => $amount,
'L_PAYMENTREQUEST_0_NAME0' => $description,
'PAYMENTREQUEST_0_INVNUM' => $order_id,
'L_PAYMENTREQUEST_0_NUMBER0' => $order_id,
'PAYMENTREQUEST_0_PAYMENTACTION' => 'SALE',
'PAYMENTREQUEST_0_CURRENCYCODE' => 'RUB',
'EMAIL' => $orders_info['email'],
'RETURNURL' => $paypal_config['success_url'].'?order_id='.$order_id.'&order_hash='.$order_hash,
'CANCELURL' => $paypal_config['fail_url'].'?order_id='.$order_id.'&order_hash='.$order_hash,
)
)
);
$paypal_create_token_content = $paypal_create_token['content'];
preg_match('/TOKEN\=(.*?)\&/', $paypal_create_token_content, $token); // get token
因此,所有必要的,都有一个付款的页面帐户:
当我点击继续时,一切顺利,但如果设置了测试模式但未使用沙盒链接,则不会向您的卡收费。为了好玩,我决定将您的PayPal帐户与我的API数据连接到同一个付款服务,付款时从卡中扣除。
然而,有时银行会要求短信代码确认付款,但仍然没有记录下来。怪异。
有什么问题?我不使用沙盒链接,但仍然有麻烦。我怀疑在参数中传递了一些不对的东西。
答案 0 :(得分:3)
当您将用户重定向到PayPal时:
https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<? echo $token[1]; ?>
用户只需批准交易,但此阶段的付款尚未完成。你必须做&#34; DoExpressCheckoutPayment&#34;致电完成付款。
有关详细信息,请访问this link