700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > PHP实现微信扫码支付功能详解

PHP实现微信扫码支付功能详解

时间:2018-08-25 09:24:29

相关推荐

PHP实现微信扫码支付功能详解

后端开发|php教程

php,详解,功能

后端开发-php教程

在手机微信端进行微信支付,直接调起JSAPI支付,这可以实现在微信里边的开的页面进行支付,比如微商城,微信端JSAPI支付详见:PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK);但有时候商城还有PC端,需要在PC端使用微信支付,则需要PC端生成支付二维码,然后微信扫码完成支付。例如:

php订单系统手机端源码,ubuntu不要交换空间,油壶口爬虫子,php总计,上海seo厂家lzw

信息发布平台源码,ubuntu17关闭,短篇小说爬虫,php框架php发展的影响,南雄外贸seolzw

这里主要讲一下PC端扫码支付以及退款的具体实现:

响应式登录源码下载,ubuntu 主目录权限,网银反爬虫,php收款,seo优化头条lzw

/** * 微信支付请求接口(POST) * @param string $goods_id 商品ID * @param string $body 商品简单描述 * @param string $order_sn 订单编号 * @param string $total_fee 金额 * @return json的数据 */public function wxpay($goods_id,$total_fee,$body,$order_sn){$config = $this->config;//统一下单参数构造$unifiedorder = array(appid=> $config[appid],mch_id=> $config[mch_id],device_info=> WEB, once_str=> self::getNonceStr(),ody=> $body,out_trade_no=> $order_sn, otal_fee=> $total_fee * 100,spbill_create_ip=> self::getip(), otify_url=> http://.$_SERVER[HTTP_HOST]./notify.php, rade_type=> NATIVE,product_id=> $goods_id);$unifiedorder[sign] = self::makeSign($unifiedorder);//return $unifiedorder;//请求数据,统一下单$xmldata = self::array2xml($unifiedorder);$url = https://api.mch./pay/unifiedorder;$res = self::curl_post_ssl($url, $xmldata);if(!$res){return array(status=>0, msg=>"Can connect the server" );}// 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了file_put_contents(./log.txt,$res,FILE_APPEND);$content = self::xml2array($res);if(strval($content[ esult_code]) == FAIL){return array(status=>0, msg=>strval($content[err_code]).:.strval($content[err_code_des]));}if(strval($content[ eturn_code]) == FAIL){return array(status=>0, msg=>strval($content[ eturn_msg]));}return $content;}/** * 微信退款(POST) * @param string(28) $transaction_id 在微信支付的时候,微信服务器生成的订单流水号,在支付通知中有返回 * @param string $out_refund_no 商品简单描述 * @param string $total_fee 微信支付的时候支付的总金额(单位:分) * @param string $refund_fee 此次要退款金额(单位:分) * @return stringxml格式的数据 */public function refund($transaction_id,$out_refund_no,$total_fee,$refund_fee){$config = $this->config;//退款参数$refundorder = array(appid=> $config[appid],mch_id=> $config[mch_id], once_str=> self::getNonceStr(), ransaction_id=> $transaction_id,out_refund_no=> $out_refund_no, otal_fee=> $total_fee * 100, efund_fee=> $refund_fee * 100);$refundorder[sign] = self::makeSign($refundorder);//请求数据,进行退款$xmldata = self::array2xml($refundorder);$url = https://api.mch./secapi/pay/refund;$res = self::curl_post_ssl($url, $xmldata);if(!$res){return array(status=>0, msg=>"Can connect the server" );}// 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了//file_put_contents(./log3.txt,$res,FILE_APPEND);$content = self::xml2array($res);if(strval($content[ esult_code]) == FAIL){return array(status=>0, msg=>strval($content[err_code]).:.strval($content[err_code_des]));}if(strval($content[ eturn_code]) == FAIL){return array(status=>0, msg=>strval($content[ eturn_msg]));}return $content;}

支付和退款就是这么简单,而且支付的时候无需获取用户openid,无需证书文件,无需配置支付授权目录,这是封装过的支付类文件的实现,调用方法更简单:

require_once "webwxpay.class.php";$config = array(appid=> wx123456789876,mch_id => 123456789,pay_apikey => 123456789876123456789876123456789876);$wxpay = new WxPay($config);$result = $wxpay->paytest();//print_r($result);scerweima($result[code_url]);//生成的支付二维码,用户可以扫码付款

这时候就会生成支付二维码,然后微信扫一扫就可以完成支付:

至于支付回调验证,这里就不过多讲了,不明白的可以看ThinkPHP中实现微信支付(jsapi支付)流程,这里详细讲了如何处理回调。

PHP实现微信扫码支付功能

实现微信扫码支付php代码分享

PHP实例教学之PC端微信扫码支付成功之后自动跳转

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。