PHP - 将从 paypal 发送的数据解码为友好的可读格式

标签 php paypal

我有一个运行良好的基本 php paypal 脚本(我在沙盒上工作)

我的问题是我从 paypal 得到的响应是不可读的,因此不能用来做我想做的事情,即更新我的数据库

这是我得到的:

Array
(
    [TOKEN] => EC%xxxxx0T
    [BILLINGAGREEMENTACCEPTEDSTATUS] => 0
    [CHECKOUTSTATUS] => PaymentActionCompleted
    [TIMESTAMP] => 2015%2d05%2d15T08%3a23%3a58Z
    [ACK] => Success
    [VERSION] => 109%2e0
    [BUILD] => 16684246
    [EMAIL] => mymail%40gmail%2ecom
    [PAYERSTATUS] => verified
    [FIRSTNAME] => myfname
    [LASTNAME] => mylname
    [COUNTRYCODE] => US
    [SHIPTONAME] => fname%20lname
    [SHIPTOSTREET] => 1%20Main%20St
    [SHIPTOCITY] => San%20Jose
    [SHIPTOSTATE] => CA
    [SHIPTOZIP] => 95131
    [SHIPTOCOUNTRYCODE] => US
    [SHIPTOCOUNTRYNAME] => United%20States
    [ADDRESSSTATUS] => Confirmed
    [CURRENCYCODE] => USD
    [AMT] => 96%2e00
    .........

如图所示,我收到了上述响应,例如,我无法将时间戳以这种格式存储在数据库中:[TIMESTAMP] => 2015%2d05%2d15T08%3a23%3a58Z 或像这样的电子邮件:[EMAIL] => mymail%40gmail%2ecom

我试过像这样使用 utf8:

header('Content-Type: text/html; charset=utf-8');

但好像没什么用

如何将从 paypal 收到的响应解码为友好可读的格式?

最佳答案

你必须使用 urldecode() 函数。

例如:

$data = "mymail%40gmail%2ecom";
echo urldecode($data);

输出:

mymail@gmail.com

关于PHP - 将从 paypal 发送的数据解码为友好的可读格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255024/

相关文章:

php - 在 PHP 中获取数组中的元素的时间复杂度是多少?

php - CURLOPT_FOLLOWLOCATION 无法激活

php - 如何在 SQL 查询中使用数组

json - Swift PayPal MassPay post 调用失败。谁能指出我正确的方向

php - 不能将类型的对象用作数组

php - htaccess带参数从asp重定向到php

PHP支付解决方案?

php - 如何修复 OpenCart 中 mail() 错误的错误参数?

paypal - 0 - 访问 https ://api. sandbox.paypal.com/v1/payments/payment 时得到 Http 响应代码 400

PayPal SetExpressCheckout 与付款按钮