php为什么支付成功了返回fail
2个回答
2016-02-04 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
php支付成功了返回fail是因为后台处理成功了,但是页面报错导致提示错误。
<?php
$service = isset( $_GET [ 'service' ]) ? $_GET [ 'service' ] : 'create_direct_pay_by_user' ;
$services = array( //交易类型
'create_direct_pay_by_user' => '即时到账' ,
'create_partner_trade_by_buyer' => '担保交易' ,
);
if(! array_key_exists ( $service , $services )) exit( '错误的交易类型' );
?>
<p style="border:2px dotted blue;width:auto;">
<label>请选择交易类型:</label>
<?php foreach ( $services as $key => $val ): ?>
<?php if( $service == $key ): ?>
<b style="color:red"><?php echo $val ; ?> </b>
<?php else: ?>
<b><a href="<?php echo url (array( 'service' => $key )); ?> "><?php echo $val ; ?> </a></b>
<?php endif; ?>
<?php endforeach; ?>
</p>
<?php
//php支付宝支付接口参数 主要如下
//(合作商户编号,加密串,返回url, 默认编码,商品名称,商品简介,商户订单号,物流配送费用)
function getRequestUrl ( $partner , $scode , $return_url , $charset , $subject , $body , $order , $lfee ) {
global $data , $service ;
# 支付宝交易类型
$data [ 'service' ] = $service ; //create_partner_trade_by_buyer[担保交易]create_direct_pay_by_user[即时到账]
# 合作商户编号
$data [ 'partner' ] = $partner ;
# 请求返回地址
$data [ 'return_url' ] = $return_url ;
# 默认编码
$data [ '_input_charset' ] = $charset ;
# 默认支付渠道
$data [ 'paymenthod' ] = 'bankPay' ;
# 默认的网银
$data [ 'defaultbank' ] = 'ICBCB2C' ;
# 商品名称
$data [ 'subject' ] = $subject ;
# 商品展示URL
$data [ 'show_url' ] = ’‘ ;
# 异步通知返回
$data [ 'notify_url' ] = ’‘ ;
# 商品简介
$data [ 'body' ] = $body ;
# 商户订单号
$data [ 'out_trade_no' ] = $order ;
# 物流配送费用
$data [ 'logistics_fee' ] = $lfee ;
# 物流费用付款方式
$data [ 'logistics_payment' ] = 'SELLER_PAY' ; //SELLER_PAY(卖家支付)、BUYER_PAY(买家支付)、BUYER_PAY_AFTER_RECEIVE(货到付款)
# 物流配送方式
$data [ 'logistics_type' ] = 'POST' ; //物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)
# 价格
$data [ 'price' ] = '10.00' ;
#$data['total_fee'] = '10.00';
# 付款方式
$data [ 'payment_type' ] = '1' ;
# 商品数量
$data [ 'quantity' ] = '1' ;
# 卖家email
$data [ 'seller_email' ] = 'chen@sjolzy.cn' ;
$data = array_filter ( $data );
ksort ( $data ); reset ( $data );
$data [ 'sign' ] = md5 ( urldecode ( http_build_query ( $data )). $scode );
$data [ 'sign_type' ] = 'MD5' ;
$url = 'https://www.alipay.com/cooperate/gateway.do?' . http_build_query ( $data );
return $url ;
}
//把支付宝接口的参数 带入进去测试
$url = getRequestUrl ( '2010101908738750' , 'ma0werwert6s2bsd1frg7hisaiaz5xjr' , 'http://www.c1991.com/demo/pay/callback.php?gateway=alipay' , 'UTF-8' , '测试商品' , '测试内容' , uniqid (), '0.00' );
<?php
$service = isset( $_GET [ 'service' ]) ? $_GET [ 'service' ] : 'create_direct_pay_by_user' ;
$services = array( //交易类型
'create_direct_pay_by_user' => '即时到账' ,
'create_partner_trade_by_buyer' => '担保交易' ,
);
if(! array_key_exists ( $service , $services )) exit( '错误的交易类型' );
?>
<p style="border:2px dotted blue;width:auto;">
<label>请选择交易类型:</label>
<?php foreach ( $services as $key => $val ): ?>
<?php if( $service == $key ): ?>
<b style="color:red"><?php echo $val ; ?> </b>
<?php else: ?>
<b><a href="<?php echo url (array( 'service' => $key )); ?> "><?php echo $val ; ?> </a></b>
<?php endif; ?>
<?php endforeach; ?>
</p>
<?php
//php支付宝支付接口参数 主要如下
//(合作商户编号,加密串,返回url, 默认编码,商品名称,商品简介,商户订单号,物流配送费用)
function getRequestUrl ( $partner , $scode , $return_url , $charset , $subject , $body , $order , $lfee ) {
global $data , $service ;
# 支付宝交易类型
$data [ 'service' ] = $service ; //create_partner_trade_by_buyer[担保交易]create_direct_pay_by_user[即时到账]
# 合作商户编号
$data [ 'partner' ] = $partner ;
# 请求返回地址
$data [ 'return_url' ] = $return_url ;
# 默认编码
$data [ '_input_charset' ] = $charset ;
# 默认支付渠道
$data [ 'paymenthod' ] = 'bankPay' ;
# 默认的网银
$data [ 'defaultbank' ] = 'ICBCB2C' ;
# 商品名称
$data [ 'subject' ] = $subject ;
# 商品展示URL
$data [ 'show_url' ] = ’‘ ;
# 异步通知返回
$data [ 'notify_url' ] = ’‘ ;
# 商品简介
$data [ 'body' ] = $body ;
# 商户订单号
$data [ 'out_trade_no' ] = $order ;
# 物流配送费用
$data [ 'logistics_fee' ] = $lfee ;
# 物流费用付款方式
$data [ 'logistics_payment' ] = 'SELLER_PAY' ; //SELLER_PAY(卖家支付)、BUYER_PAY(买家支付)、BUYER_PAY_AFTER_RECEIVE(货到付款)
# 物流配送方式
$data [ 'logistics_type' ] = 'POST' ; //物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)
# 价格
$data [ 'price' ] = '10.00' ;
#$data['total_fee'] = '10.00';
# 付款方式
$data [ 'payment_type' ] = '1' ;
# 商品数量
$data [ 'quantity' ] = '1' ;
# 卖家email
$data [ 'seller_email' ] = 'chen@sjolzy.cn' ;
$data = array_filter ( $data );
ksort ( $data ); reset ( $data );
$data [ 'sign' ] = md5 ( urldecode ( http_build_query ( $data )). $scode );
$data [ 'sign_type' ] = 'MD5' ;
$url = 'https://www.alipay.com/cooperate/gateway.do?' . http_build_query ( $data );
return $url ;
}
//把支付宝接口的参数 带入进去测试
$url = getRequestUrl ( '2010101908738750' , 'ma0werwert6s2bsd1frg7hisaiaz5xjr' , 'http://www.c1991.com/demo/pay/callback.php?gateway=alipay' , 'UTF-8' , '测试商品' , '测试内容' , uniqid (), '0.00' );
2015-04-28 · 知道合伙人互联网行家
关注
展开全部
这个问题的原因还是在微信支付->开发配置的授权目录设定上,我使用的官方php demo(普通公众号微信支付),
微信支付的调用脚本getBrandWCPayRequest所在的页面需要是普通的php项目结构,如果是mvc就会报出上面的invalid appid错误。
所以,我把微信支付的js调用页面单独拿出作为一个新的项目就ok了。为了避免mvc到普通php项目结构转移的麻烦,只需要把getBrandWCPayRequest 的js代码块拿到新项目中即可,
至于js中使用的动态参数,可以在mvc中整理好以参数的形式传递到新项目的微信支付调用页面即可,支付成功后的异步通知页面也仍可以写在mvc项目中。
目前该办法解决了我的微信支付问题,如果有网友解决了mvc的授权问题,可以补充一下。
微信支付的调用脚本getBrandWCPayRequest所在的页面需要是普通的php项目结构,如果是mvc就会报出上面的invalid appid错误。
所以,我把微信支付的js调用页面单独拿出作为一个新的项目就ok了。为了避免mvc到普通php项目结构转移的麻烦,只需要把getBrandWCPayRequest 的js代码块拿到新项目中即可,
至于js中使用的动态参数,可以在mvc中整理好以参数的形式传递到新项目的微信支付调用页面即可,支付成功后的异步通知页面也仍可以写在mvc项目中。
目前该办法解决了我的微信支付问题,如果有网友解决了mvc的授权问题,可以补充一下。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询