Home > Backend Development > PHP Tutorial > When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?

When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?

WBOY
Release: 2016-08-04 09:19:53
Original
2859 people have browsed it

When Android and ios APP call WeChat payment, the page appears blank
My backend is developed in php. I first called WeChat’s unified order generation to generate the prepay_id prepayment order number. The code is as follows:

<code><?php
public function send_pay(){
//使用统一支付接口
$unifiedOrder = new UnifiedOrder_pub();
$amount = trim($this->config['money'])*100;
$notify_url=$this->config['NotifyUrl'];   //通知URL

//设置统一支付接口参数
//设置必填参数
//appid已填,商户无需重复填写
//mch_id已填,商户无需重复填写
//noncestr已填,商户无需重复填写
//spbill_create_ip已填,商户无需重复填写
//sign已填,商户无需重复填写
//iconv("gb2312","utf-8//IGNORE",
$unifiedOrder->setParameter("body",$this->config['title']);//商品描述
//自定义订单号,此处仅作举例
$out_trade_no = $this->config['code'];
$create_ip = $_SERVER["REMOTE_ADDR"];
$unifiedOrder->setParameter("out_trade_no",$out_trade_no);//商户订单号 
$unifiedOrder->setParameter("total_fee",$amount);//总金额
$unifiedOrder->setParameter("notify_url",$notify_url);//通知地址 
$unifiedOrder->setParameter("spbill_create_ip",$create_ip);//用户端实际ip
$unifiedOrder->setParameter("trade_type","APP");//APP交易类型
$unifiedOrder->setParameter("attach","111");//附加数据 

//获取统一支付接口结果
$unifiedOrderResult = $unifiedOrder->getResult();

//商户根据实际情况设置相应的处理流程
if ($unifiedOrderResult["return_code"] == "FAIL") 
{
    //商户自行增加处理流程
    echo "通信出错:".$unifiedOrderResult['return_msg']."<br>";
}
elseif($unifiedOrderResult["result_code"] == "FAIL")
{
    //商户自行增加处理流程
    echo iconv("utf-8","gb2312//IGNORE","错误代码:".$unifiedOrderResult['err_code']."<br>");
    echo iconv("utf-8","gb2312//IGNORE","错误代码描述:".$unifiedOrderResult['err_code_des']."<br>");
}
elseif($unifiedOrderResult["return_code"] == "SUCCESS")
{
    /**
    成功后返回如下信息
    <xml>
       <return_code><![CDATA[SUCCESS]]></return_code>
       <return_msg><![CDATA[OK]]></return_msg>
       <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
       <mch_id><![CDATA[10000100]]></mch_id>
       <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
       <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign>
       <result_code><![CDATA[SUCCESS]]></result_code>
       <prepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id>
       <trade_type><![CDATA[APP]]></trade_type>
    </xml>
    **/
    $result = array();
    $result['appid'] = $unifiedOrderResult['appid'];
    $result['partnerid'] = $unifiedOrderResult['mch_id'];
    $result['prepayid'] = $unifiedOrderResult['prepay_id'];
    $result['noncestr'] = $unifiedOrderResult['nonce_str'];
    $result['timestamp'] = time();
    $result['package'] = "Sign=WXPay"; //'Sign=WXPay'
    $result['sign'] = $unifiedOrderResult['sign'];
    echo json_encode($result);

    exit;
        //商户自行增加处理流程
        //......
    }
}
?></code>
Copy after login
Copy after login

Send the following generated parameters to Android and ios:

<code>$result['appid'] = $unifiedOrderResult['appid'];
$result['partnerid'] = $unifiedOrderResult['mch_id'];
$result['prepayid'] = $unifiedOrderResult['prepay_id'];
$result['noncestr'] = $unifiedOrderResult['nonce_str'];
$result['timestamp'] = time();
$result['package'] = "Sign=WXPay"; //'Sign=WXPay'
$result['sign'] = $unifiedOrderResult['sign'];</code>
Copy after login
Copy after login

However, when calling WeChat Pay on Android or iOS, the display is blank and there is no error message, as shown in the screenshot below:

When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?
When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?
When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?
When changing the above transaction type to scan code payment, the generated QR code can be used for payment successfully
It has been more than a week and I am stuck here and can’t move. Please help me. Let’s see what the problem is, thank you very much
Reference URL:
http://www.cocoachina.com/bbs...
http://www.cnblogs.com/CrazyS...
http://www .xl779.com/news/zha...

Reply content:

When Android and ios APP call WeChat payment, the page appears blank
My backend is developed in php. I first called WeChat’s unified order generation to generate the prepay_id prepayment order number. The code is as follows:

<code><?php
public function send_pay(){
//使用统一支付接口
$unifiedOrder = new UnifiedOrder_pub();
$amount = trim($this->config['money'])*100;
$notify_url=$this->config['NotifyUrl'];   //通知URL

//设置统一支付接口参数
//设置必填参数
//appid已填,商户无需重复填写
//mch_id已填,商户无需重复填写
//noncestr已填,商户无需重复填写
//spbill_create_ip已填,商户无需重复填写
//sign已填,商户无需重复填写
//iconv("gb2312","utf-8//IGNORE",
$unifiedOrder->setParameter("body",$this->config['title']);//商品描述
//自定义订单号,此处仅作举例
$out_trade_no = $this->config['code'];
$create_ip = $_SERVER["REMOTE_ADDR"];
$unifiedOrder->setParameter("out_trade_no",$out_trade_no);//商户订单号 
$unifiedOrder->setParameter("total_fee",$amount);//总金额
$unifiedOrder->setParameter("notify_url",$notify_url);//通知地址 
$unifiedOrder->setParameter("spbill_create_ip",$create_ip);//用户端实际ip
$unifiedOrder->setParameter("trade_type","APP");//APP交易类型
$unifiedOrder->setParameter("attach","111");//附加数据 

//获取统一支付接口结果
$unifiedOrderResult = $unifiedOrder->getResult();

//商户根据实际情况设置相应的处理流程
if ($unifiedOrderResult["return_code"] == "FAIL") 
{
    //商户自行增加处理流程
    echo "通信出错:".$unifiedOrderResult['return_msg']."<br>";
}
elseif($unifiedOrderResult["result_code"] == "FAIL")
{
    //商户自行增加处理流程
    echo iconv("utf-8","gb2312//IGNORE","错误代码:".$unifiedOrderResult['err_code']."<br>");
    echo iconv("utf-8","gb2312//IGNORE","错误代码描述:".$unifiedOrderResult['err_code_des']."<br>");
}
elseif($unifiedOrderResult["return_code"] == "SUCCESS")
{
    /**
    成功后返回如下信息
    <xml>
       <return_code><![CDATA[SUCCESS]]></return_code>
       <return_msg><![CDATA[OK]]></return_msg>
       <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
       <mch_id><![CDATA[10000100]]></mch_id>
       <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
       <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign>
       <result_code><![CDATA[SUCCESS]]></result_code>
       <prepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id>
       <trade_type><![CDATA[APP]]></trade_type>
    </xml>
    **/
    $result = array();
    $result['appid'] = $unifiedOrderResult['appid'];
    $result['partnerid'] = $unifiedOrderResult['mch_id'];
    $result['prepayid'] = $unifiedOrderResult['prepay_id'];
    $result['noncestr'] = $unifiedOrderResult['nonce_str'];
    $result['timestamp'] = time();
    $result['package'] = "Sign=WXPay"; //'Sign=WXPay'
    $result['sign'] = $unifiedOrderResult['sign'];
    echo json_encode($result);

    exit;
        //商户自行增加处理流程
        //......
    }
}
?></code>
Copy after login
Copy after login

Send the following generated parameters to Android and ios:

<code>$result['appid'] = $unifiedOrderResult['appid'];
$result['partnerid'] = $unifiedOrderResult['mch_id'];
$result['prepayid'] = $unifiedOrderResult['prepay_id'];
$result['noncestr'] = $unifiedOrderResult['nonce_str'];
$result['timestamp'] = time();
$result['package'] = "Sign=WXPay"; //'Sign=WXPay'
$result['sign'] = $unifiedOrderResult['sign'];</code>
Copy after login
Copy after login

However, when calling WeChat Pay on Android or iOS, the display is blank and there is no error message, as shown in the screenshot below:

When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?
When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?
When Android and iOS APP calls WeChat Pay, the page appears blank. (php WeChat payment, white screen when app initiates WeChat payment)?
When changing the above transaction type to scan code payment, the generated QR code can be used for payment successfully
It has been more than a week and I am stuck here and can’t move. Please help me. Let’s see what the problem is, thank you very much
Reference URL:
http://www.cocoachina.com/bbs...
http://www.cnblogs.com/CrazyS...
http://www .xl779.com/news/zha...

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template