php调微信支付,支付宝支付

One:前言:微信支付和支付宝支付pc端和app端是不同的两种形式,以下是我整理的demo,大家可以下载:
Two:下载:

  1>微信pc:http://www.taikongliu.com/pay/example/WxpayAPI_php_v3.zip
          (也可以在微信支付平台/开发者文档/扫码支付下载sdk包)
       2>支付宝pc:http://www.taikongliu.com/pay/example/pc_ali.zip
               (也可以在:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.iUPkW7&treeId=203&        articleId=105910&docType=1)
  3>微信和支付宝app:http://www.taikongliu.com/pay/example/pay_app.zip
    (https://github.com/dcloudio/H5P.Server/tree/master/payment/alipay)
Three:微信开放平台和微信公众平台的区别和作用:
        1>微信开放平台:主要面向App开发者,通常是拥有成熟的应用程序之后,通过开放平台将内容分享至朋友圈或发送给某个微    信好友/群聊
    2>信公众平台:强调信息流,向微博一样主要推送内容,像10086一样根据用户发来的消息进行智能回复或后台实现某些功    能
Four:微信支付(微信开放平台):
          使用微信支付功能需到微信开放平台申请移动应用并开通支付功能
          微信APP支付接入商户服务中心
          申请应用后可以获取AppID和AppSecret值。
          开通支付功能后可获取支付业务服务器配置数据
          PARTNER:财付通商户号
          PARTNER_KEY:财付通密钥s
          PAYSIGNKEY:支付签名密钥
   1》微信pc:
        1>下载下demo后,在lib/WxPay.Config.php中配置
         const APPID = ‘绑定支付的APPID’
         const MCHID = 商户号
         const KEY = '商户支付密钥,参考开户邮件设置';
         const APPSECRET = 公众帐号secert
             cert/文件下把加密的证书进行全部换掉
        2>访问example/native.php,把订单号,金额,同步回掉地址,异步回调等支付信息配置好,就可以生成一张漂亮的二维      码啦!
       3>支付成功,在异步回掉接到回掉的订单号等各种微信支付成功的信息,然后进行写上自己的业务逻辑
       4>最后记得一定要在异步回掉写上日志,记录交易是否成功等记录
  2》微信app:(建议下载Hbuilder调试app端)
        1>下载下demo后,在wapay/index.php中配置
        2>财付通商户号
          $PARTNER = "%商户号(PartnerID)%";
          $PARTNER_KEY = 财付通密钥
          $APP_ID="appid;
          $APP_SECRET= 公众帐号secert
          $PaySignKey="签名;
          $notify_url = "支付完成后的异步回调处理页面";
        3>配置号这些信息之后,通过jsonp请求发送需要的订单号(唯一的),每次用这些订单号查询出商品的价格,名称,商品详    情,等这些信息,有了这些信息之后,demo会自定调起微信支付!
        4>支付成功,在异步回掉接到回掉的订单号等各种微信支付成功的信息,然后进行写上自己的业务逻辑
        5>最后记得一定要在异步回掉写上日志,记录交易是否成功等记录
Five:支付宝支付(蚂蚁金服)
   1》首先是申请(企业账户认证,需要准备以下资料):
       1>营业执照
       2>申请人有效身份证信息
       3>提交申请人企业委托授权书
       4>银行对公账户
   2》申请流程:(蚂蚁金服:https://cshall.alipay.com/enterprise/index.htm)
       1>注册账户
       2>实名认证
       3>签约申请-(后申请签约手机支付)

    https://b.alipay.com/order/productDetail.htm?productId=2013080604609688
       4>通过审核,技术集成
    3》审核通过后需要提过接入的PID/KEY
       1>合作者身份Id(partner)和交易安全效验码(key)是商户与支付宝签约后,商户获得的支付宝商户唯一识别码与密钥
          ,当商户把支付宝功能接入商户网站时会用到它们,以便让支付宝认证商户。
        2>登陆支付宝官网(www.alipay.com)
        3>点击导航栏中(“商家服务”)
        4>点击查询(PID,KEY),即可查询到合作者身份ID,以2008开头的16位纯数字   
        5>输入支付密码,查询key
   pc支付:
       1>下载demo后,在alipay.config.php中配置
           $alipay_config['partner']= 合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,
           $alipay_config['key']= 'MD5密钥,安全检验码,由数字和字母组成的32位字符串';
           $alipay_config['notify_url'] = "http://商户网址/create_direct_pay_by_user-PHP-UTF-8/notify_url.php";    //     服务器异步通知页面路径
           $alipay_config['return_url'] = "http://www.month11.com/pay/alipay2/return_url.php";        //同步回掉路径
        2>在alipayapi.php中配置
    
            $out_trade_no = $_POST['WIDout_trade_no'];         //商户订单号,商户网站订单系统中唯一订单号,必填
            $subject = $_POST['WIDsubject'];              //订单名称,必填
            $total_fee = $_POST['WIDtotal_fee'];         //付款金额,必填
            $body = $_POST['WIDbody'];         //商品描述,可空
        3>配置好之后访问到alipayapi.php,就会生成很漂亮的二维码
        4>支付成功,在异步回掉接到回掉的订单号等各种微信支付成功的信息,然后进行写上自己的业务逻辑
        5>最后记得一定要在异步回掉写上日志,记录交易是否成功等记录
  app支付:
        1>下载demo后,在index.php中配置//    
        $priKey = "-----BEGIN RSA PRIVATE KEY-----生成密钥时获取的私钥字符串,直接使用pem文件的完整字符串        -----END   RSA PRIVATE KEY-----";
        $partner = "%支付宝PartnerID%";    //支付宝合作者身份ID,以2088开头的16位纯数字
        $seller_id = '%支付宝账号,通常为邮箱地址%';        // 支付宝账号
        $base_path = urlencode('http://101.***4***38/moblie/index.html');    //同步回掉
        $notify_url = urlencode('http://www.t******tify_url.php');    // 异步通知地址
        $subject = '***';
        $body = '*****';    // 订单详情
        $out_trade_no = date('YmdHis', time());     // 订单号,示例代码使用时间值作为唯一的订单ID号
        2>配置好这些之后,在通过jsonp传递订单号,支付宝就会调起支付宝支付
        3>支付成功,在异步回掉接到回掉的订单号等各种微信支付成功的信息,然后进行写上自己的业务逻辑
        4>最后记得一定要在异步回掉写上日志,记录交易是否成功等记录

注意:所有的异步回调地址,必须写日志或者信息入库,为了防止用户偷单,还要判断用户支付的金额是否和该商品的价格相同

    如果不一致,则订单状态不改变

six:complete!

原文地址:https://www.cnblogs.com/taikongliu/p/6689760.html