`

微信app支付遇到的问题

阅读更多
1、微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版。V3版的微信支付没有paySignKey参数。

    因为之前用的是v版,现在用的是v3版,所以在参数上发现不一致。后来看了最新文档才发现这个问题,得与时俱进啊,否则随时掉到坑里。

2、app开发文档 
  http://kf.qq.com/faq/120911VrYVrA150906F3qqY3.html

  找了半天没找到v3的服务器端sdk,原来app的文档没游直接提供服务器端的sdk,最后发现是在微信公众号的开发文档里边,有点晕菜。
  https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
  从这里下载对应的php服务器端sdk。

3、给客户端用的签名方法
  private function getWechatpayStrByV3($total_fee,$body,$out_trade_no){
            ini_set('date.timezone','Asia/Shanghai');
            $notify_url = ROOT_URL."/wechatpay/notify_url_v3.php";
            
		    $input = new WxPayUnifiedOrder();
   			$input->SetBody($body);
            $input->SetOut_trade_no($out_trade_no);
            $input->SetTotal_fee($total_fee);
            $input->SetTime_start(date("YmdHis"));
            $input->SetTime_expire(date("YmdHis", time() + 600));
            $input->SetNotify_url($notify_url);
            $input->SetTrade_type("APP");
            $input->SetProduct_id($total_fee);
            $unifiedOrderResult = WxPayApi::unifiedOrder($input);
            
            if($_GET['os']=='iOS'):
            	$timestamp = time();
            else:
            	$timestamp = $this->getMillisecond();
            endif;
            
            $data = array(
                "appid"           => $unifiedOrderResult['appid'],
                "partnerid"      => $unifiedOrderResult['mch_id'],
                "prepayid"       => $unifiedOrderResult['prepay_id'],    
                "noncestr"       => $unifiedOrderResult['nonce_str'],
                "timestamp"     => (string)time(),
                'package'         => 'Sign=WXPay',
            );
            //$this->getMillisecond()
            $input = new WxPayUnifiedOrder();
            $input->SetAppid($data['appid']);
            $input->SetPartnerid($data['partnerid']);
            $input->SetPrepayid($data['prepayid']);
            $input->SetNoncestr($data['noncestr']);
            $input->SetTimestamp($data['timestamp']);
            $input->SetPackage($data['package']);
            
            //将下单获取的信息重新签名
            $data['sign']=$input->SetSign();
            
            return $data;
	}
	
  ps:ios使用的timestamp对应的值要是秒,否则会出错。这个也有点坑。

4、异步通知使用WxpayAPI_php_v3/example/notify.php
     重写回调处理函数
    public function NotifyProcess($data, &$msg){}
    处理自己的业务即可。


5、异步通知接收不到xml
   解决方式
   //获取通知的数据
   $xml = $GLOBALS['HTTP_RAW_POST_DATA'];
   if(empty($xml)):
      $xml = file_get_contents("php://input");
   endif;

6、curl出错,错误码:60
   解决方式  

    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
    改为
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
     

分享到:
评论

相关推荐

    c#/.net微信APP支付服务端开发Demo

    在本文中,我们将深入探讨如何使用C#/.NET进行微信APP支付服务端的开发,基于提供的标题和描述,我们可以了解到这是一个已经验证过的实际项目,并且包含一个社区支持的环境。微信APP支付是微信支付的一种模式,它...

    java 微信APP支付Demo

    Java微信APP支付Demo是用于实现微信移动应用支付功能的一个示例项目。这个Demo已经在实际的项目环境中得到了应用,其中包含了完整的支付流程,但可能混杂了一些业务逻辑代码,需要使用者自行筛选和剥离。 微信APP...

    微信APP支付工具类(java)

    在实现微信APP支付过程中,可能会遇到各种异常情况,如网络问题、签名错误、参数不合法等。工具类应提供相应的异常处理机制,便于开发者捕获和处理这些错误,同时,微信支付返回的错误码也需要进行解析,以便定位...

    android微信APP支付V3源码

    在Android平台上实现微信APP支付V3涉及到一系列的技术和流程,这些技术主要集中在移动支付、应用程序接口(API)调用、安全传输以及应用内购买等方面。本文将深入探讨这些知识点,帮助开发者理解并实现这一功能。 1...

    微信h5支付,跨app支付,php版本,百分百可用,亲测

    这种支付方式适用于各种应用程序,包括非微信应用(跨App支付),极大地拓宽了商家收款的渠道。 在PHP开发中,实现微信H5支付通常需要以下几个关键步骤: 1. **注册成为微信商户**:首先,你需要在微信支付商户...

    微信APP支付后台(源码)

    微信APP支付后台源码是开发移动应用支付功能的关键部分,尤其对于快速集成微信支付到应用程序中至关重要。这个源码提供了方便的功能,可以帮助开发者减少在后台处理支付参数时所花费的时间和精力,使得整个支付流程...

    最新微信APP支付服务端php SDK 基于1.2开发文档开发

    微信APP支付服务端php SDK是微信支付为开发者提供的一个关键工具,它允许PHP开发者在后端处理微信应用程序的支付流程。这个SDK基于1.2版本,意味着它包含了最新的特性和安全改进,确保与微信支付接口的顺畅对接。...

    微信APP支付服务端demo及详细开发文档

    微信APP支付服务端demo及详细开发文档是一份非常实用的资源,主要涵盖了微信支付在移动端(Android)和服务端的实现细节。这份文档旨在帮助开发者快速理解和集成微信支付功能,为电商平台或其他需要在线支付的应用...

    手机APP微信支付C#后端代码

    - 在对接微信支付的过程中,可能会遇到各种错误,如网络问题、参数错误、证书问题等。后端代码需要有良好的错误处理机制,记录错误日志,并根据错误码进行排查。 - 使用微信官方提供的沙箱环境进行测试,模拟各种...

    iOS 原生加载微信支付链接跳转支付宝方法封装

    在整个过程中,可能会遇到网络问题、用户取消支付等情况,因此需要适当地捕获和处理异常。例如,当WKWebView加载失败时,可以显示错误提示,同时提供重新尝试的选项。 8. **代码示例** ```swift class ...

    C#.NET整合微信,支付宝,银联支付

    支付宝支付接口则包括网页支付、APP支付、扫码支付等。在C#.NET中,我们需要使用Alipay.Aop SDK,配置商户信息,调用各种支付接口生成支付链接或二维码,同样需要处理异步回调通知,确认支付状态并进行相应的业务...

    微信,支付宝关于app下单demo

    在移动支付领域,微信支付和支付宝是两大主流的支付平台,尤其在中国市场占据了主导地位。...开发者可以根据这个示例快速上手,了解并掌握微信支付和支付宝支付的接口使用方法,从而在自己的APP中顺利实现支付功能。

    微信刷卡支付所需jar

    5. **异常处理**:在与微信服务器通信过程中,可能会遇到网络问题或服务器返回的错误代码。JAR文件通常会包含对这些异常的捕获和处理机制,帮助开发者更方便地定位和解决错误。 6. **支付回调通知**:当支付状态...

    微信支付demo实践

    在移动应用开发中,微信支付是一种常见的支付方式,尤其在安卓平台上。本示例"微信支付demo实践"是为了帮助开发者理解和实现安卓应用中微信支付的集成。以下将详细阐述相关知识点: 1. **微信支付SDK**:微信提供了...

    微信支付 java后端demo

    这个Demo包含了处理微信支付过程中可能遇到的各种场景和问题,从而避免开发者在实际开发时遭遇不必要的困扰。以下是对这个Demo中涉及的关键知识点的详细解释: 1. **微信支付接口调用**:微信支付提供了丰富的API...

    DZ3.2PC支付宝+PC微信扫码+手机支付宝+微信内支付免签约充值插件

    3. 技术支持:遇到问题时,可联系插件开发者或社区寻求帮助,确保插件的稳定运行。 综上所述,DZ3.2PC支付宝+PC微信扫码+手机支付宝+微信内支付免签约充值插件为Discuz! 3.2论坛提供了一套全面、易用的支付解决方案...

    在线微信支付宝换钱源码,可对接易支付_易支付_微信支付_

    微信支付是腾讯公司旗下微信团队开发的一种便捷的移动支付方式,用户可以通过微信App完成购物、转账等各种在线支付操作。而支付宝则是阿里巴巴集团旗下的蚂蚁金服提供的支付服务,同样涵盖了广泛的支付场景,如网购...

    【微信支付】APP支付(Android)接口文档V1.7.pdf

    本文档是微信APP支付接口文档的版本1.7,主要面向使用Android系统的开发者。 在微信支付的发展历程中,2014年9月10号之前申请的接口称为V2版本,之后申请的则为V3版本。V2版本的微信支付包含了一系列的参数,并且...

    PHP实现的微信APP支付功能示例【基于TP5框架】

    本文实例讲述了PHP实现的微信APP支付功能。分享给大家供大家参考,具体如下: 1.进行支付请求 他给的DEMO 用的时候有时候会报错 1)我遇到的情况 把 WxPay.Api.php这个文件的 postXmlCurl 这个 方法里 // curl_...

    800元购买的微信 h5支付demo

    用户在商家的H5页面上完成商品选择后,可以直接通过微信进行支付,无需跳转到微信APP,简化了支付流程,提升了用户体验。在这个800元购买的微信H5支付demo中,我们可以学习到以下关键知识点: 1. **接口调用**:...

Global site tag (gtag.js) - Google Analytics