PHP 에서 통합 PayPal 표준 결제 의 실현 방법 공유

4557 단어 PayPal표준 지불
PayPal 결제 기능 은 사실 문서 와 인 터 페 이 스 를 계속 업데이트 하고 있 습 니 다.여기 서 말 하 는 간단 한 결제 기능 은 다음 과 같 습 니 다.
1.사이트 의 결제 페이지 에 PayPal 사이트 에 제출 하 는 form 을 설정 합 니 다.그 안에 금액,상품 명,업 체 수금 계 정,결제 성공 후 URL 로 돌아 가 는 내용 이 있 습 니 다.
2.사용자 가 결제 할 때'PayPal 로 결제 하기'버튼 을 눌 러 PayPal 결제 페이지 에 도착 하여 자신의 PayPal 사용자 이름과 비밀 번 호 를 입력 하고 결제 확인
3.PayPal 은 결제 성공 여부 에 따라 사이트 의 어느 페이지 로 돌아 갈 지 결정 하고 배경 에서 사이트 의 특정한 페이지 에 post 요청 을 합 니 다.이 동작 을 IPN 이 라 고 부 르 고 사이트 에 이 지불 의 입금 상황 을 알려 줍 니 다.예 를 들 어 completed 는 지불 을 완성 하기 위해 서 입 니 다.
4.사이트 에서 PayPal 의 notify 알림 을 받 은 후 사용자 에 게 발송 또는 기타 처리 논리
여기 설명 할 그림 이 있어 요.
paypal_process_thumb[1]
더욱 간단 한 흐름 도
download_thumb[3]
  • checkout.php 이 페이지 는 카 트 정 보 를 표시 하고 사용자 가 단 추 를 누 르 면 PayPal 로 내 비게 이 션 하여 지불 하도록 합 니 다.
  • notify.phop 이 페이지 는 PayPal 의 IPN 정 보 를 받 아 사용자 의 결제 가 입금 되 었 는 지 등 상 태 를 판단 하고 사이트 수금 후의 업무 논리
  • 를 처리 하 는 데 사용 된다.
    코드 기록:checkout.php 이 페이지 는 HTML
     
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="ev_csrf" value="9878824eb2cf4f1075dfa43c216d7cec"> <input type="hidden" name="cmd" value="_cart"> <input type="hidden" name="upload" value="1"> <input type="hidden" name="charset" value="utf-8"> <input type="hidden" name="currency_code" value="USD"> <input type="hidden" name="business" [email protected]> <input type="hidden" name="cancel_return" value=”http://www.test.com/checkout.html”> <input type="hidden" name="return" value=”http://www.test.com/thanks.html”> <input type="hidden" name="notify_url" value="http://www.test.com/notify.php"> <input type="hidden" name="custom" value="userid:31;ip:182.114.240.221"> <input type="hidden" name="item_number" value="ARO0101"> <input type="hidden" name="item_name" value="AD182m"> <input type="hidden" name="quantity" value="1"> <input type="hidden" name="amount" value="70"> <input type="submit" value="Checkout with PayPal"> </form>
    일 수 있 습 니 다.이 form 에는 PayPal 결제 에 필요 한 항목 이 포함 되 어 있 습 니 다.주의해 야 할 것 은 notify.phop 은 PayPal 이 배경 에서 호출 할 notify.phop 입 니 다.이 페이지 는 두 가지 기능 이 있 습 니 다.하 나 는 PayPal 의 post 내용 을 받 고 라벨 을 붙 여 되 돌려 주 는 것 입 니 다.하 나 는 PayPal 의 인증 정 보 를 받 은 후 사이트 내부 의 논리 적 처리
     
    $req = 'cmd=_notify-validate';
    foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
    }
    // post back to PayPal system to validate
    $header .= "POST /cgi-bin/webscr HTTP/1.0\r
    ";
    $header .= "Content-Type: application/x-www-form-urlencoded\r
    ";
    $header .= "Content-Length: " . strlen($req) . "\r
    \r
    ";
    $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
    if (!$fp) {
    // HTTP ERROR
    } else {//HTTP OK
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
    $res = fgets ($fp, 1024);
    if (strcmp ($res, "VERIFIED") == 0) {
    //process business of website
    }
    else if (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
    }
    }
    fclose ($fp);
    }

    좋은 웹페이지 즐겨찾기