您的位置:首页 > 移动开发 > 微信开发

微信支付 V3版

2016-03-28 10:28 465 查看
本人小菜鸟一仅仅。为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群。希望光临本博客的人能够进来交流。

寻求共同发展。搭建平台。本人博客也有很多的技术文档,希望能够为你提供一些帮助。QQ群: 191848169 QQ:450225664

强烈建议:先看demo

须要申请对应的帐号

后台设置支付文件夹

js_api_call.php

<?

php

/**

* JS_API支付demo

* ====================================================

* 在微信浏览器里面打开H5网页中运行JS调起支付。接口输入输出数据格式为JSON。

* 成功调起支付须要三个步骤:

* 步骤1:网页授权获取用户openid

* 步骤2:使用统一支付接口,获取prepay_id

* 步骤3:使用jsapi调起支付

*/

include_once("WxPayPubHelper/WxPayPubHelper.php");

//使用jsapi接口

$jsApi = new JsApi_pub();

//=========步骤1:网页授权获取用户openid============

//通过code获得openid

if (!isset($_GET['code']))

{

//触发微信返回code码

$url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);

Header("Location: $url");

}else

{

//获取code码。以获取openid

$code = $_GET['code'];

$jsApi->setCode($code);

$openid = $jsApi->getOpenId();

}

// $openid = 'oywLxshg8ZwoEURBA9seM-Ahdp-s';

//=========步骤2:使用统一支付接口。获取prepay_id============

//使用统一支付接口

$unifiedOrder = new UnifiedOrder_pub();

//设置统一支付接口參数

//设置必填參数

//appid已填,商户无需反复填写

//mch_id已填,商户无需反复填写

//noncestr已填,商户无需反复填写

//spbill_create_ip已填,商户无需反复填写

//sign已填,商户无需反复填写

$unifiedOrder->setParameter("openid","$openid");//商品描写叙述

$unifiedOrder->setParameter("body","贡献一分钱");//商品描写叙述

//自己定义订单号,此处仅作举例

$timeStamp = time();

$out_trade_no = WxPayConf_pub::APPID."$timeStamp";

$unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号

$unifiedOrder->setParameter("total_fee","1");//总金额

$unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址

$unifiedOrder->setParameter("trade_type","JSAPI");//交易类型

//非必填參数。商户可依据实际情况选填

//$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号

//$unifiedOrder->setParameter("device_info","XXXX");//设备号

//$unifiedOrder->setParameter("attach","XXXX");//附加数据

//$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间

//$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间

//$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记

//$unifiedOrder->setParameter("openid","XXXX");//用户标识

//$unifiedOrder->setParameter("product_id","XXXX");//商品ID

$prepay_id = $unifiedOrder->getPrepayId();

//=========步骤3:使用jsapi调起支付============

$jsApi->setPrepayId($prepay_id);

$jsApiParameters = $jsApi->getParameters();

//echo $jsApiParameters;

?

>

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=utf-8"/>

<title>微信安全支付</title>

<script type="text/javascript">

//调用微信JS api 支付

function jsApiCall()

{

WeixinJSBridge.invoke(

'getBrandWCPayRequest',

<?php echo $jsApiParameters; ?>,

function(res){

WeixinJSBridge.log(res.err_msg);

//alert(res.err_code+res.err_desc+res.err_msg);

}

);

}

function callpay()

{

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);

}else if (document.attachEvent){

document.attachEvent('WeixinJSBridgeReady', jsApiCall);

document.attachEvent('onWeixinJSBridgeReady', jsApiCall);

}

}else{

jsApiCall();

}

}

</script>

</head>

<body>

</br></br></br></br>

<div align="center">

<button style="width:210px; height:30px; background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" type="button" onclick="callpay()" >贡献一下</button>

</div>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: