1.获取openid
由于小程序只能授权一个域名,所以获取openid接口写在后端
服务器端:
$url="https://api.weixin.qq.com/sns/jscode2session?appid=".$_GET['appid']."&secret=".$_GET['secret']."&js_code=".$_GET['code']."&grant_type=authorization_code";
$html = file_get_contents($url);
echo $html;//将获取到的数据传给小程序小程序端: //调用登录接口
wx.login({
success: function (res) {
//该方法获取到code
//将code及小程序appId、secret发送给服后端
wx.request({
url: 'URL?appid=' + appId + "&secret=" + secret + "&code=" + res.code,
success: function (r) {
//r.data取到openid
//openid获取到了存储起来
}
})
}
})2.发起支付服务器端:
此代码参考慕课网七月讲师的代码
<?php
namespace app\api\controller;
use think\Controller;
use think\Loader;
Loader::import('WxPay.WxPay', EXTEND_PATH, '.Api.php');//将附件放入根目录下的/extend
class Wxpay extends Controller
{
function index() {
//订单号
$order=订单号;
$money=$_GET['money']*100;
// 初始化值对象
$input = new \WxPayUnifiedOrder();
// 文档提及的参数规范:商家名称-销售商品类目
$input->SetBody("点餐");
// 订单号应该是由小程序端传给服务端的,在用户下单时即生成,demo中取值是一个生成的时间戳
$input->SetOut_trade_no("$order");
// 费用应该是由小程序端传给服务端的,在用户下单时告知服务端应付金额,demo中取值是1,即1分钱
$input->SetTotal_fee("$money");
$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
$input->SetTrade_type("JSAPI");
// 由小程序端传给服务端
$input->SetOpenid(input('openid'));
// 向微信统一下单,并返回order,它是一个array数组
$order = \WxPayApi::unifiedOrder($input);
// json化返回给小程序端
header("Content-Type: application/json");
echo json_encode($order);
}小程序端 wx.request({
url: app.config.url + "wxpay?openid=" + this.data.openid + "&bus=" + app.config.bus + "&user=" + this.data.user +"&money="+this.data.money,
success: function (response){
var timeStamp = (Date.parse(new Date()) / 1000).toString();
var pkg = 'prepay_id=' + response.data.prepay_id;
var nonceStr = response.data.nonce_str;
var paySign = md5.hexMD5('appId=' + 小程序appId + '&nonceStr=' + nonceStr + '&package=' + pkg + '&signType=MD5&timeStamp=' + timeStamp + "&key=微信支付key").toUpperCase();//此处用到hexMD5插件
//发起支付
wx.requestPayment({
'timeStamp': timeStamp,
'nonceStr': nonceStr,
'package': pkg,
'signType': 'MD5',
'paySign': paySign,
'success': function (res) {
//支付成功之后的操作
}
});
}
})支付完毕由于程序商用性,无法开放源代码,有疑问可联系QQ:767777453
Wxpay.rar
( 12.95 KB 下载:1185 次 )
