PayPal - 获取重复发布的个人资料的交易详情

Ser*_*kyy 11 php transactions paypal

在进行TransactionSearch请求时,我收到交易的TRANSACTIONID字段的事务列表,对应于定期付款,格式为例如"I-BRPN2RUD8W0G"(当前是假的).

对于其余的事务 - 我通常会得到17个单字节字母数字字符串.这意味着,对于定期付款,PayPal会返回ProfileID,但不会返回TransactionID.

因此,当我请求GetTransactionDetails并将此交易ID传递给PayPal时,我会收到有关普通付款的有效详细信息,并收到有关定期付款情况的消息"交易ID无效"的错误.

Muk*_*Ram 6

您需要按照Sanjiv的建议设置IPN.您可以根据IPN变量获取字段.如果退款,您还需要使用parent_txn_id

如果您是新手并且发现困难,可以使用IPN侦听器类,然后集成下面的代码

$listener = new IpnListener();

try {
    $verified = $listener->processIpn();
} catch (Exception $e) {
    return Log::error($e->getMessage());
}

if ($verified) {

$data = $_POST;
$user_id = json_decode($data['custom'])->user_id;

$subscription = ($data['mc_gross_1'] == '10') ? 2 : 1;

$txn = array(
    'txn_id'       => $data['txn_id'],
    'user_id'      => $user_id,
    'paypal_id'    => $data['subscr_id'],
    'subscription' => $subscription,
    'expires'      => date('Y-m-d H:i:s', strtotime('+1 Month')),
);

Payment::create($txn);

} else {
    Log::error('Transaction not verified');
}
Run Code Online (Sandbox Code Playgroud)

将此文件代码保存在文件中,例如ipn.php,现在在paypal帐户中为此文件指定Web路径.

PS:确保您的IPN文件位于可公开访问的URL上.不要使用本地或受限制的服务器.


San*_*eev 1

您必须在您的 Paypal 商家帐户中设置IPN(特别是对于定期付款),当定期付款发生时,它会向您发送回交易详细信息,从那里您可以获取$_POST['txn_id']哪个是您的TRANSACTIONIDif 。将详细信息保存在数据库中,然后您可以在需要交易详细信息时调用方法。更多的$_POST['txn_type']recurring_paymentGetTransactionDetails