如何从paypal获得成功或失败的回应?

时间:2017-03-15 11:49:11

标签: angularjs

Iam尝试支付宝贝。付款完成后,我们如何才能获得交易的详细信息以及如何通过angularjs中的paypal付款获得成功或失败的响应?

1 个答案:

答案 0 :(得分:1)

我正在使用此PHP代码来实现它。因此,在Paypal完成交易后,他们会向您返回回复(即使交易失败)。只需检查参数" ACK"在阵列。

此响应是一个包含有关您的事务的信息的数组。 如果您想要提供交易信息。只需使用方法" GetTransactionDetails",paypal服务器将返回一个包含所有信息的数组(您必须使用事务ID来进行查询,而不是您的令牌)。只需将此代码修改为angularJS

即可
    <?php

function verify_Transaction($idTrans,$show){
    $nvp = array(
        'METHOD'        => 'GetTransactionDetails',
        'VERSION'       => '124.0', 
        'PWD'           => 'YOUR PASS',
        'USER'          => 'YOUR USER',
        'SIGNATURE'     => 'YOUR SIGNATURE' ,
        'TRANSACTIONID' => yourTransactionID
        );

    $curl = curl_init();

    curl_setopt( $curl , CURLOPT_URL , 'https://api-3t.sandbox.paypal.com/nvp' );
    curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false );
    curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 );
    curl_setopt( $curl , CURLOPT_POST , 1 );
    curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( $nvp ) );

    $response = urldecode( curl_exec( $curl ) ); 

    $responseNvp = array();

    if ( preg_match_all( '/(?<name>[^\=]+)\=(?<value>[^&]+)&?/' , $response , $matches ) ) {
        foreach ( $matches[ 'name' ] as $offset => $name ) {
            $responseNvp[ $name ] = $matches[ 'value' ][ $offset ];
        }
    }
    if($show){
    echo '<pre>';print_r($responseNvp);echo'</pre>';
    }

    if($responseNvp['ACK']=='Success'){
        //echo "true";
        return true;
    }else{
        //echo "false";
        return false;
    }
}

?>