`微信支付分为四步:

1、获取code

2、获取opendi

3、获取相应数据得到商品订单数组

4、支付返回(js 判断)

PHP语言:

include("includes/modules/payment/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);

ecs_header("Location: $url");

}else

{

//获取code码,以获取openid

$code = $_GET['code'];

$jsApi->setCode($code);

$openid = $jsApi->getOpenId();

if(!empty($openid)){

include_once('includes/lib_clips.php');

include_once('includes/lib_payment.php');

获取订单信息

}

$unifiedOrder = new UnifiedOrder_pub();

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

//设置必填参数

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

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

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

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

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

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

$out_trade_no = $order['order_sn'];

$unifiedOrder->setParameter("body","$goods_name");//商品描述

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

//$timeStamp = time();

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

$total_fee = $total['amount']*100;

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

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

$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();

//$jsApiParameters = json_encode($jsApiParameters);

$smarty->assign('pay_online', $jsApiParameters);

JavaScript语言:

<script type="text/javascript">

//调用微信JS api 支付

function jsApiCall()

{

WeixinJSBridge.invoke(

'getBrandWCPayRequest',

{$pay_online},

function(res){

WeixinJSBridge.log(res.err_msg);

if(res.err_msg == "get_brand_wcpay_request:ok"){

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

window.location.href="http://blog.sina.com.cn/u/1863605217";

}else{

//返回跳转到订单详情页面

alert(支付失败);

window.location.href="http://blog.sina.com.cn/u/1863605217";

}

}

);

}

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>`

微信jsapi支付获取code_确定能用的微信支付jsapi相关推荐

  1. 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ

    微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...

  2. 微信jsapi支付获取code_微信支付(公众号支付JSAPI)

    微信公众号支付/微信浏览器支付(JSAPI) 一:获取微信支付四大参数 步骤二:平台配置 配置支付目录:商户平台. 配置此目录是代码中"微信支付"所在页面的地址,一级域名需ICP备 ...

  3. 微信jsapi支付获取code_微信JSAPI公众号支付在部分机型上出现appid参数错误的解决办法 - YangJunwei...

    都说微信支付的坑比较多,老杨感觉还行,就是开始周期和调试过程比较费时费力-_-! 今儿在调试一个基于微信JSAPI公众号的支付项目时发现,部分机型(比如iphone7/vivo-x6d)中微信支付获取 ...

  4. 微信jsapi支付获取code_微信JSAPI支付那点事

    准备工作 微信商户账户/密码(获取appid等信息) 微信公众号账户/密码(获取cert证书等信息,不做线上退款不需要证书) 基础php知识 自己已备案的域名(备案后微信不拦截) 自己可登陆的服务器( ...

  5. 微信jsapi支付获取code_【微信支付】JSAPI支付开发者文档

    一.概述 为保证商户接入质量,提升交易安全及用户体验,微信支付的合作服务商在正式上线交易前,必须先根据本文指引完成验收.验收完成后,服务商在验收公众平台(微信号:WXPayAssist)提交验收通过申 ...

  6. 微信jsapi支付获取code_微信开发之微信公众平台开发之JSAPI公众号支付

    本文将带你了解微信开发微信公众平台开发之JSAPI公众号支付,希望本文对大家学微信有所帮助. 一:配置参数 申请成功后,获取接口文件, 将所有文件放入项目根目录weixin下,在WxPay.ub.co ...

  7. 微信jsapi支付获取code_微信公众号JSAPI支付大致流程

    一:配置参数 申请成功后,获取接口文件, 将所有文件放入项目根目录weixin下,在WxPay.ub.config.php中填入配置账户信息; 二:设置授权 开发者中心->网页服务->网页 ...

  8. 微信jsapi支付获取code_微信支付之JSAPI公众号支付详解

    前提 本教程默认以下几点你已经完全满足: 开通了认证后的服务号 服务号开通的微信支付的认证 腾讯给你的邮件中有商户登录的账号和密码 拥有一个可供上传代码和设置回调域名的网站或云服务 有一点点php知识 ...

  9. 微信jsapi支付获取code_微信支付 第一篇 JSAPI 支付配置与获取 OpenID

    开通微信支付支付产品 首先要在微信支付申请成为 微信支付商户. 选择开通具体的支付产品 成为微信支付商户后在管理后台选择微信支付中的具体支付产品并申请开通如 JSAPI . 将支付商户与公众号关联 这 ...

最新文章

  1. 第九章 字符串,字符和字节
  2. HTML使用vue的 event,vue-js 特殊变量$event常识
  3. javascript最新版本_什么是JavaScript!
  4. pandas的自带数据集_pandas.DataFrame.sample随机抽样
  5. 常用MYSQL日期查询
  6. ajax回调函数提交表单,MVC3中ajax提交表单无法执行success回调函数,怎么办?
  7. 优化理论03----优化导论和无约束问题的最优条件、优化问题的类型、局部、全局和严格优化、梯度和Hessian 黑塞矩阵和方向导数、无约束问题的最优条件
  8. 支持firefox 3.6的onenote插件
  9. Q1手机银行运营报告:交易规模超150万亿,月活跃用户4.9亿
  10. TTL传输中过期问题导致网站打不开
  11. 考华为HCIP证书多钱?
  12. MySQL必知必会2
  13. 手机上最简单的计算机,怎么把手机文件传到电脑,才最简单又快速?
  14. 第10周---信息熵与压缩编码基础
  15. Qt - QTChart绘制图表
  16. phpStudy无法打开http://localhost/
  17. cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法
  18. Spring Boot 异常错误处理
  19. Python中colorbar全色表
  20. 方向gravity_两种对齐方式,layout_gravity和gravity大不同

热门文章

  1. “程序员羊皮卷”中的职场江湖——《程序员羊皮卷》书评(4)
  2. 自制操作系统-使用16进制文件显示 hello world
  3. 声音编辑软件----CoolEdit
  4. 【讲座】08 南水北调中线总干渠含引配水工程水动力耦合模拟研究
  5. threejs 右下角视角指示器
  6. ftp服务器搭建(实现只上传禁止下载)
  7. php盯盘,一个游资的盯盘界面设置(图解)
  8. 50页智慧校园解决方案[附下载]
  9. python 使用myo臂环
  10. 分享一段wave降噪处理代码