JSAPI支付——H5网页端调起支付接口

 1 /**
  2 * JSAPI支付——H5网页端调起支付接口
  3 */
  4 class JsApi_pub extends Common_util_pub
  5 {
  6     var $code;//code码,用以获取openid
  7     var $openid;//用户的openid
  8     var $parameters;//jsapi参数,格式为json
  9     var $prepay_id;//使用统一支付接口得到的预支付id
 10     var $curl_timeout;//curl超时时间
 11 
 12     function __construct()
 13     {
 14         //设置curl超时时间
 15         $this->curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
 16     }
 17 
 18     /**
 19      *     作用:生成可以获得code的url
 20      */
 21     function createOauthUrlForCode($redirectUrl)
 22     {
 23         $urlObj["appid"] = WxPayConf_pub::APPID;
 24         $urlObj["redirect_uri"] = urlencode($redirectUrl);
 25         $urlObj["response_type"] = "code";
 26         $urlObj["scope"] = "snsapi_base";
 27         $urlObj["state"] = "STATE"."#wechat_redirect";
 28         $bizString = $this->formatBizQueryParaMap($urlObj, false);
 29         return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString;
 30     }
 31 
 32     /**
 33      *     作用:生成可以获得openid的url
 34      */
 35     function createOauthUrlForOpenid()
 36     {
 37         $urlObj["appid"] = WxPayConf_pub::APPID;
 38         $urlObj["secret"] = WxPayConf_pub::APPSECRET;
 39         $urlObj["code"] = $this->code;
 40         $urlObj["grant_type"] = "authorization_code";
 41         $bizString = $this->formatBizQueryParaMap($urlObj, false);
 42         return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString;
 43     }
 44 
 45 
 46     /**
 47      *     作用:通过curl向微信提交code,以获取openid
 48      */
 49     function getOpenid()
 50     {
 51         $url = $this->createOauthUrlForOpenid();
 52         //初始化curl
 53         $ch = curl_init();
 54         //设置超时
 55         curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
 56         curl_setopt($ch, CURLOPT_URL, $url);
 57         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
 58         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
 59         curl_setopt($ch, CURLOPT_HEADER, FALSE);
 60         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 61         //运行curl,结果以json形式返回
 62         $res = curl_exec($ch);
 63         curl_close($ch);
 64         //取出openid
 65         $data = json_decode($res,true);
 66         $this->openid = $data['openid'];
 67         return $this->openid;
 68     }
 69 
 70     /**
 71      *     作用:设置prepay_id
 72      */
 73     function setPrepayId($prepayId)
 74     {
 75         $this->prepay_id = $prepayId;
 76     }
 77 
 78     /**
 79      *     作用:设置code
 80      */
 81     function setCode($code_)
 82     {
 83         $this->code = $code_;
 84     }
 85 
 86     /**
 87      *     作用:设置jsapi的参数
 88      */
 89     public function getParameters()
 90     {
 91         $jsApiObj["appId"] = WxPayConf_pub::APPID;
 92         $timeStamp = time();
 93         $jsApiObj["timeStamp"] = "$timeStamp";
 94         $jsApiObj["nonceStr"] = $this->createNoncestr();
 95         $jsApiObj["package"] = "prepay_id=$this->prepay_id";
 96         $jsApiObj["signType"] = "MD5";
 97         $jsApiObj["paySign"] = $this->getSign($jsApiObj);
 98         $this->parameters = json_encode($jsApiObj);
 99         return $this->parameters;
100     }
101 }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值