PHP 에서 통합 PayPal 표준 결제 의 실현 방법 공유
1.사이트 의 결제 페이지 에 PayPal 사이트 에 제출 하 는 form 을 설정 합 니 다.그 안에 금액,상품 명,업 체 수금 계 정,결제 성공 후 URL 로 돌아 가 는 내용 이 있 습 니 다.
2.사용자 가 결제 할 때'PayPal 로 결제 하기'버튼 을 눌 러 PayPal 결제 페이지 에 도착 하여 자신의 PayPal 사용자 이름과 비밀 번 호 를 입력 하고 결제 확인
3.PayPal 은 결제 성공 여부 에 따라 사이트 의 어느 페이지 로 돌아 갈 지 결정 하고 배경 에서 사이트 의 특정한 페이지 에 post 요청 을 합 니 다.이 동작 을 IPN 이 라 고 부 르 고 사이트 에 이 지불 의 입금 상황 을 알려 줍 니 다.예 를 들 어 completed 는 지불 을 완성 하기 위해 서 입 니 다.
4.사이트 에서 PayPal 의 notify 알림 을 받 은 후 사용자 에 게 발송 또는 기타 처리 논리
여기 설명 할 그림 이 있어 요.
더욱 간단 한 흐름 도
,
코드 기록: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);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PayPal Webhook의 Verify(정당성 검증)는 너무 어려워요.PayaPal에서 보내온 Webhook의 검증은 너무 이해하기 어렵다. 우선SDK 2.0 관련 기능을 찾을 수 없음 권장1.7.2. ※ 새로운 2.0를 사용하는 게 좋을 것 같은데, 혹시 아시는 분 있으면 알려주세요...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.