小程序-微信支付
发布时间:2021-09-19 09:12:39作者:顺晟科技点击:
app.js
// 获取用户 code
App({
code:null,
onLaunch: function () {
var that = this;
//登陆获取code
wx.login({
success: function (res) {
if(res.code){
that.code = res.code;
}else{
console.log("获取用户登陆失败");
}
}
});
},
})
index.wxml
// 点击发起支付事件
<button class="total_js" bindtap="wxpay">结算订单</button>
index.js
var app = getApp()
Page({
wxpay: function () { var code = app.code; var total_fee = this.data.total; wx.request({
//后台url、此处我用的是新浪云服务 url: "https://cloud.applinzi.com/Wxpay/example/jsapi.php", data: { code:code, // code 上传至后台url }, header:{ \'content-type\' :\'json\' }, method: \'GET\', success: function (res) { // console.log(res.data) var data = res.data; wx.requestPayment({
\'timeStamp\': data.timeStamp, \'nonceStr\': data.nonceStr, \'package\': data.package, \'signType\': \'MD5\', \'paySign\': data.paySign, \'success\': function (res) { wx.navigateBack({ delta: 1, // 回退前 delta(默认为1) 页面 success: function (res) { wx.showToast({ title: \'支付成功\', icon: \'success\', duration: 2000 }) } }) } }); } }) } })
Wxpay 后台部分 (公众平台提供的模板-点击链接下载)
或者打开https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 选择 php demo
1、 wxpay.config.php
设置 appid、key、mchid 、appsecert 填写自己的小程序及商户号对应参数。
<?php
/**
* 配置账号信息
*/
class WxPayConfig
{
//=======【基本信息设置】=====================================
//
/**
* TODO: 修改这里配置为您自己申请的商户信息
* 微信公众号信息配置
*
* APPID:绑定支付的APPID(必须配置,开户邮件中可查看)
*
* MCHID:商户号(必须配置,开户邮件中可查看)
*
* KEY:商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置)
* 设置地址:https://pay.weixin.qq.com/index.php/account/api_cert
*
* APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置),
* 获取地址:https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev&token=2005451881&lang=zh_CN
* @var string
*/
const APPID = \'wxfc1f9478556d4e8cb2\';
const MCHID = \'1388148007\';
const KEY = \'hsof3idlugbperhndrmcnrychc3ttjd\';
const APPSECRET = \'5443a7d84df1a47a603138b79a34de71\';
*/
const SSLCERT_PATH = \'../cert/apiclient_cert.pem\';
const SSLKEY_PATH = \'../cert/apiclient_key.pem\';
//=======【curl代理设置】===================================
*/
const CURL_PROXY_HOST = "0.0.0.0";//"10.152.18.220";
const CURL_PROXY_PORT = 0;//8080;
*/
const REPORT_LEVENL = 1;
}
2、wxpay.jsapiPay.php
修改此文件的 __CreateOauthUrlForOpenid() 函数部分
private function __CreateOauthUrlForOpenid($code)
{
$urlObj["appid"] = WxPayConfig::APPID;
$urlObj["secret"] = WxPayConfig::APPSECRET;
$urlObj["js_code"] = $code;
$urlObj["grant_type"] = "authorization_code";
$bizString = $this->ToUrlParams($urlObj);
return "https://api.weixin.qq.com/sns/jscode2session?".$bizString; //这里的url: https://api.weixin.qq.com/sns/jscode2session 由小程序提供。
}
jsapi.php
<?php
ini_set(\'date.timezone\',\'Asia/Shanghai\');
//error_reporting(E_ERROR);
require_once "../lib/WxPay.Api.php";
require_once "WxPay.JsApiPay.php";
require_once \'log.php\';
//①、获取用户openid
$tools = new JsApiPay();
$openId = $tools->GetOpenid();
//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody("商品名称");
$input->SetAttach("数据")
$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
$input->SetTotal_fee(\'1\');
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
//echo \'<font color="#f00"><b>统一下单支付单信息</b></font><br/>\';
//printf_info($order);
$jsApiParameters = $tools->GetJsApiParameters($order);
echo $jsApiParameters ;
//获取共享收货地址js函数参数
$editAddress = $tools->GetEditAddressParameters();
//③、在支持成功回调通知中处理成功之后的事宜,见 notify.php
/**
* 注意:
* 1、当你的回调地址不可访问的时候,回调通知会失败,可以通过查询订单来确认支付是否成功
* 2、jsapi支付时需要填入用户openid,WxPay.JsApiPay.php中有获取openid流程 (文档可以参考微信公众平台“网页授权接口”,
* 参考http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html)
*/
?>
4. 将自己操作证书 application_cert.pem 与 application_key.pem 放在cert 文件夹下。
简单的介绍到这里,若有疑问,可私下讨论。
- 上一篇 : 微信小程序 关注公众号组件
- 下一篇 : 微信3.1小程序商城源码C# ASP.NET 多用户微商城


