微信支付

Posted Rakishly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信支付相关的知识,希望对你有一定的参考价值。

WxPay.pub.config.php文件

$web_u = "http://".$_SERVER[‘HTTP_HOST‘];
//获取access_token过程中的跳转uri,通过跳转将code传入jsapi支付页面
defined("JS_API_CALL_URL_A") or define(JS_API_CALL_URL_A , urlencode($web_u."/index.php"));

//证书路径,注意应该填写绝对路径
defined("SSLCERT_PATH_A") or define(SSLCERT_PATH_A , dirname(__FILE__)."/cacert/apiclient_cert.pem");
defined("SSLKEY_PATH_A") or define(SSLKEY_PATH_A , dirname(__FILE__)."/cacert/apiclient_key.pem");

//异步通知url,商户根据实际开发过程设定
defined("NOTIFY_URL_A") or define(NOTIFY_URL_A , $web_u."/pay/api/wx_notify_url.php");
//=======【异步通知url设置】===================================
//异步通知url,商户根据实际开发过程设定
const NOTIFY_URL = NOTIFY_URL_A;


同步
/**
*
* 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。
* 成功调起支付需要三个步骤:
* 步骤1:网页授权获取用户openid
* 步骤2:使用统一支付接口,获取prepay_id
* 步骤3:使用jsapi调起支付
*/
include_once("./module/payment/lib/WxPayPubHelper/WxPayPubHelper.php");
//使用jsapi接口
$jsApi = new JsApi_pub();
//=========步骤1:通过code获得openid============
$openid = $_SESSION[‘openid‘];
//=========步骤2:使用统一支付接口,获取prepay_id============
$unifiedOrder = new UnifiedOrder_pub();

$unifiedOrder->setParameter("openid",$openid);//商品描述
$unifiedOrder->setParameter("body","test");//商品描述
//自定义订单号,此处仅作举例

$timeStamp = time();
$out_trade_no = $order_id;
$unifiedOrder->setParameter("out_trade_no",$out_trade_no);//商户订单号
$unifiedOrder->setParameter("total_fee",100);//总金额
$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",$re_wx[‘id‘]."|".$order_id);//附加数据

$prepay_id = $unifiedOrder->getPrepayId();
//=========步骤3:使用jsapi调起支付============
$jsApi->setPrepayId($prepay_id);
$jsApiParameters = $jsApi->getParameters();
$tpl->assign("jsApiParameters",json_decode($jsApiParameters,true));


<script type="text/javascript">
//调用微信JS api 支付
function jsApiCall()
{
WeixinJSBridge.invoke(‘getBrandWCPayRequest‘,{
‘appId‘:"<{$jsApiParameters.appId}>",
‘timeStamp‘:"<{$jsApiParameters.timeStamp}>",
‘nonceStr‘:"<{$jsApiParameters.nonceStr}>",
‘package‘:"<{$jsApiParameters.package}>",
‘signType‘:"<{$jsApiParameters.signType}>",
‘paySign‘:"<{$jsApiParameters.paySign}>"
},function(res){
// WeixinJSBridge.log(res.err_msg);
if(res.err_msg == "get_brand_wcpay_request:ok")// 支付成功
{
alert("付款成功,请几分钟后更新页面查看");
var order_id="<{$smarty.get.tradeNo}>";
}
});
}
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>























































































以上是关于微信支付的主要内容,如果未能解决你的问题,请参考以下文章

如何申请微信H5支付

微信支付—微信H5支付「微信内部浏览器」

java微信支付v3系列——5.微信支付成功回调

***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结

微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结

H5微信支付啥意思