PayPal API(付款成功,但不会从卡中扣款)

时间:2016-05-25 10:22:53

标签: php paypal

我使用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数据连接到同一个付款服务,付款时从卡中扣除。

然而,有时银行会要求短信代码确认付款,但仍然没有记录下来。怪异。

有什么问题?我不使用沙盒链接,但仍然有麻烦。我怀疑在参数中传递了一些不对的东西。

1 个答案:

答案 0 :(得分:3)

当您将用户重定向到PayPal时:

https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=<? echo $token[1]; ?>

用户只需批准交易,但此阶段的付款尚未完成。你必须做&#34; DoExpressCheckoutPayment&#34;致电完成付款。

有关详细信息,请访问this link