我正在使用 PayPal 支付系统,我想在自定义字段中发送 2 个值。因此我使用了 urlencode(json_encode()) 功能。没有 urlencoding 的示例。
$customData = array();
$customData['invoiceID'] = $invoiceID;
$customData['username'] = urlencode($_GET['username']);
$p->add_field('custom', urlencode(json_encode($customData)));
输出是:
%7B%22invoiceID%22%3A108674%2C%22username%22%3A%22Just%2Btesting%22%7D
urldecoding 和 jsondecoding 时期望的输出:
{"invoiceID":108674,"username":"Just testing"}
但是在 urldecoding 和 jsondecoding 之后它给了我这个:
{"invoiceID":108674,"username":"Just+testing"}
此问题的解决方法是再次对用户名本身进行 urldecode。但是,为什么我必须将 urldecode 加倍才能获得我仅运行一次此函数的 urlencoded 的值?
似乎您正在对数据应用两次 urlencode()
,因此您需要应用两次 urldecode()
或删除其中一次。
我是一名优秀的程序员,十分优秀!