Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP cURL为Paypal移动支付设置。命令窗口cURL调用到PHP cURL脚本调用之间的转换_Php_Android_Curl_Paypal_Server - Fatal编程技术网

PHP cURL为Paypal移动支付设置。命令窗口cURL调用到PHP cURL脚本调用之间的转换

PHP cURL为Paypal移动支付设置。命令窗口cURL调用到PHP cURL脚本调用之间的转换,php,android,curl,paypal,server,Php,Android,Curl,Paypal,Server,在阅读了一些有关cURL命令和php的内容后,我得出了这样的结论:可以通过计算机上的命令窗口执行cURL命令,也可以使用cURL语法格式化php脚本以获得服务器响应。我的应用程序正在数据库(000webhost)中存储信息。我的php脚本存储数据库中的所有可用列,但用于存储Paypal android sdk返回的访问令牌的列除外,该访问令牌用于验证移动付款人的支付信息。我需要获得这个访问令牌。我的php脚本是通过我的应用程序调用的。此脚本将有关付款人的信息与所谓的访问令牌一起存储到我的数据库中

在阅读了一些有关cURL命令和php的内容后,我得出了这样的结论:可以通过计算机上的命令窗口执行cURL命令,也可以使用cURL语法格式化php脚本以获得服务器响应。我的应用程序正在数据库(000webhost)中存储信息。我的php脚本存储数据库中的所有可用列,但用于存储Paypal android sdk返回的访问令牌的列除外,该访问令牌用于验证移动付款人的支付信息。我需要获得这个访问令牌。我的php脚本是通过我的应用程序调用的。此脚本将有关付款人的信息与所谓的访问令牌一起存储到我的数据库中。但它不存储访问令牌。当我在浏览器上运行脚本时,我没有收到任何错误。然而,$json、$jsonn和$result变量分别被var_转储为“false”、null和null

根据Paypal android sdk文档,必须使用此脚本来请求访问令牌:(我看到我必须通过命令窗口运行此脚本,我不知道当Paypal付款将在实际的手机(而不是有命令窗口的计算机)上进行时,会发生什么情况)。我需要将此命令窗口cURL设置转换为php脚本类型的设置:

下面是由Paypal建议设置的cURL命令:

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp
:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \
-d "grant_type=client_credentials"
下面是我在php脚本中重新创建相同的cURL命令的尝试:

$ch = curl_init("https://api.sandbox.paypal.com/v1/oauth2/token");
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, "$idclient:$sekret");
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");

$result = curl_exec($ch);

curl_close($ch);

$json = json_encode($result);
$jsonn = json_decode($json);
$tkn = $jsonn->access_token;
下面是我的android应用程序如何尝试查看php脚本中的卷曲是否有效:

private void dvwrt(){

 new Thread(new Runnable(){

                    @Override
                    public void run() {
                        //"http://www.myonlinedb.net/mycurlscript.php"
                        String name = "kriss";
                        URL url = null;
                        try {
                            url = new URL("http://www.myonlinedb.net/mycurlscript.php");// this is when script is //accessed filling in database fields and obtaining an access-token(CANT DO //THIS)
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                        }
                        HttpURLConnection conn = null;
                        try {
                            conn = (HttpURLConnection) url.openConnection();
                            conn.setRequestMethod("POST");
                            conn.setDoOutput(true);
                            conn.connect();
                            OutputStream oStream = conn.getOutputStream();
                            BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(oStream, "UTF-8"));
                            String data_Write = URLEncoder.encode("name", "UTF-8")+"="+URLEncoder.encode(stringo,"UTF-8")+"&"+
                                    URLEncoder.encode("email", "UTF-8")+"="+URLEncoder.encode(emailString,"UTF-8")+"&"+
                                    URLEncoder.encode("phone_number", "UTF-8")+"="+URLEncoder.encode(phoneString,"UTF-8")+"&"+
                                    URLEncoder.encode("subject", "UTF-8")+"="+URLEncoder.encode(subjectType,"UTF-8")+"&"+
                                    URLEncoder.encode("grade", "UTF-8")+"="+URLEncoder.encode(gradeType,"UTF-8")+"&"+
                                    URLEncoder.encode("payment_id", "UTF-8")+"="+URLEncoder.encode(pay_iD,"UTF-8");
                            bWriter.write(data_Write);
                            bWriter.flush();
                            bWriter.close();
                            oStream.close();
                            InputStream in = conn.getInputStream();
                            in.close();
                            conn.disconnect();

                        } catch (IOException e) {
                            e.printStackTrace();
                        }


                    }
                }).start();

            }






}    

实际上,我尝试在我的终端上复制PHP代码,但我确实收到了访问令牌。你有没有试过打印$json变量的值以确定你是否有它?哇。太好了。我会再试一次。也许WebHost服务器有问题。您是否使用了与我发布的相同的PHP脚本@是的,我在本地主机上使用了完全相同的。如果仍然无法从中获得任何信息,请尝试打开调试模式,查看curl是否抛出任何错误