Iam尝试支付宝贝。付款完成后,我们如何才能获得交易的详细信息以及如何通过angularjs中的paypal付款获得成功或失败的响应?
答案 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;
}
}
?>