Heim  >  Artikel  >  Backend-Entwicklung  >  PayPal网站付款标准版for PHP

PayPal网站付款标准版for PHP

WBOY
WBOYOriginal
2016-08-08 09:22:521149Durchsuche

简单整理一下PHP项目整合PayPal支付功能。

一、表单的构建:

<span><span>form </span><span>method</span><span>="post"</span><span> name</span><span>="form"</span><span> action</span><span>="https://www.paypal.com/cgi-bin/webscr"</span><span>></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="rm"</span><span> value</span><span>="2"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="cmd"</span><span> value</span><span>="_xclick"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="business"</span><span> value</span><span>="商家账号"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="return"</span><span> value</span><span>="返回网址"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="cancel_return"</span><span> value</span><span>="取消返回网址"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="notify_url"</span><span> value</span><span>="用于接收PayPal发送的即时付款通知的URL,必须是有效的URL"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="item_name"</span><span> value</span><span>="物品名称"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="item_number"</span><span> value</span><span>="可用于跟踪购买或捐赠的传递变量,在付款完成时传回给您"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="amount"</span><span> value</span><span>="物品的价格(购物车中所有物品的总价格"</span><span>/></span><span><span>input </span><span>type</span><span>="hidden"</span><span> name</span><span>="currency_code"</span><span> value</span><span>="币种"</span><span>/></span><span></span><span>form</span><span>></span></span></span></span></span></span></span></span></span></span></span></span>

二、IPN验证部分

<span>php
</span><span>class</span><span> paypal {
  </span><span>var</span><span>$paypal_url</span>='https://www.paypal.com/cgi-bin/webscr';<span>//</span><span>sandbox:https://www.sandbox.paypal.com/cgi-bin/webscr</span><span>var</span><span> validate_ipn_response;
  </span><span>function</span> validate_ipn() {<span>//</span><span>验证IPN
      // parse the paypal URL</span><span>$url_par</span>=<span>parse_url</span>(<span>$this</span>-><span>paypal_url);
      </span><span>//</span><span> generate the post string from the _POST vars aswell as load the
      // _POST vars into an arry so we can play with them from the calling
      // script.</span><span>$post_str</span> = ''<span>;
      </span><span>foreach</span> (<span>$_POST</span><span>as</span><span>$field</span>=><span>$value</span><span>) {
        </span><span>$this</span>->ipn_data["<span>$field</span>"] = <span>$value</span><span>;
        </span><span>$post_str</span> .= <span>$field</span>.'='.<span>urlencode</span>(<span>stripslashes</span>(<span>$value</span>)).'&'<span>;
      }
      </span><span>$post_str</span>.="cmd=_notify-validate"; <span>//</span><span> append ipn command
      // open the connection to paypal</span><span>$fp</span> = <span>fsockopen</span>(<span>$url_par</span>[host],"80",<span>$errnum</span>,<span>$errstr</span>,30<span>);
      </span><span>if</span>(!<span>$fp</span><span>) {
        </span><span>//</span><span> could not open the connection.</span><span>return</span><span>false</span><span>;
      } </span><span>else</span><span> {
        </span><span>//</span><span> Post the data back to paypal</span><span>fputs</span>(<span>$fp</span>, "POST ".<span>$url_par</span>[path]." HTTP/1.1\r\n"<span>);
        </span><span>fputs</span>(<span>$fp</span>, "Host: ".<span>$url_par</span>[host]."\r\n"<span>);
        </span><span>fputs</span>(<span>$fp</span>, "Content-type: application/x-www-form-urlencoded\r\n"<span>);
        </span><span>fputs</span>(<span>$fp</span>, "Content-length: ".<span>strlen</span>(<span>$post_str</span>)."\r\n"<span>);
        </span><span>fputs</span>(<span>$fp</span>, "Connection: close\r\n\r\n"<span>);
        </span><span>fputs</span>(<span>$fp</span>, <span>$post_str</span> . "\r\n\r\n"<span>);
        </span><span>//</span><span> loop through the response from the server and append to variable</span><span>while</span>(!<span>feof</span>(<span>$fp</span><span>)) {
          </span><span>$this</span>->validate_ipn_response .= <span>fgets</span>(<span>$fp</span>, 1024<span>);
        }
        </span><span>fclose</span>(<span>$fp</span>); <span>//</span><span> close connection</span><span>}
    </span><span>if</span> (<span>eregi</span>("VERIFIED",<span>$this</span>-><span>validate_ipn_response)) {
      </span><span>return</span><span>true</span><span>;
    } </span><span>else</span><span> {
      </span><span>return</span><span>false</span><span>;
    }
  }<br>}
</span>?>

资料:
开发者:https://developer.paypal.com/
即时付款通知:https://www.paypal-biz.com/development/documentation/PayPal_IPN&PDT_Guide_V1.0.pdf
paypal标准版:https://www.paypal-biz.com/development/documentation/PayPal_WPS_Guide_CN_V2.0.pdf 

以上就介绍了PayPal网站付款标准版for PHP,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php 在线 mysql 大数据导入程序Nächster Artikel:Nginx安全配置研究