原文地址


//index.js
Page({
data: { },
//点击支付按钮进行支付
payclick: function () {
var t = this;
wx.login({
//获取code换取openID
success: function (res) {
//code = res.code //返回code
console.log("获取code");
console.log(res.code);
var opid = t.getOpenId(res.code);
}
})
},
//获取openID
getOpenId: function (code) {
var that = this;
wx.request({
url: "https://api.weixin.qq.com/sns/jscode2session?appid=你的appid&secret=AppSecret(小程序密钥)&js_code=" + code + "&grant_type=authorization_code",
data: {},
method: 'GET',
success: function (res) {
console.log("获取openid")
console.log(res)
that.setData({
openid: res.data.openid,
session_key: res.data.session_key
})
that.generateOrder(res.data.openid)
},
fail: function () {
// fail
},
complete: function () {
// complete
}
})
},
//生成商户订单
generateOrder: function (openid) {
var that = this
wx.request({
url: 'http://localhost:25492/wx/getda',//后台请求地址
method: 'GET',
data: {
gfee: '商品价钱',
gname: '商品名称',
openId: openid
//(商品价钱和商品名称根据自身需要是否传值, openid为必传)
},
success: function (res) {
console.log("后台获取数据成功");
console.log(res);
var param = { "timeStamp": res.data.timeStamp, "package": res.data.package, "paySign": res.data.paySign, "signType": "MD5", "nonceStr": res.data.nonceStr };
//发起支付
that.pay(param);
},
fail: function (res) {
console.log("向后台发送数据失败")
}
})
},
//支付
pay: function (param) {
var that = this;
console.log("发起支付")
console.log(param)
wx.requestPayment({
timeStamp: param.timeStamp,
nonceStr: param.nonceStr,
package: param.package,
signType: param.signType,
paySign: param.paySign,
success: function (res) {
console.log("success");
console.log(res);
},
fail: function (res) {
console.log("fail")
console.log(res);
},
complete: function (res) {
console.log("complete");
console.log(res)
}
})
}
})

  

最新文章

  1. session超时时间设置方法
  2. knockout应用开发指南(完整版)
  3. 请问如何查看mysql 的端口号?
  4. Channel States
  5. git 删除错误提交的commit
  6. Mvc4_ActionLink跟@RenderBody ,@RenderPage
  7. 搭建高性能计算环境(十)、应用软件的安装之Wien2k
  8. [Computer Vision] SIFT特征学习笔记
  9. 在Word中直接用快捷键查找选中文本
  10. Golang 基于libpcap/winpcap的底层网络编程——gopacket安装
  11. mysql、oracle和SQL server数据库的区别
  12. powerdesigner将name的名字赋给comment
  13. AngularJS多个ng-app只解析第一个的问题
  14. jquery运用FormData结合Ajax异步上传表单,超实用
  15. lumion室内渲染二6.3
  16. c++ 创建线程以及参数传递
  17. [ 10.05 ]CF每日一题系列—— 962B贪心和思维?
  18. 浅谈ASP.NET框架
  19. Android 简历 怎么写? 月薪10K,20K+, 怎么拿到面试?
  20. python中函数基础

热门文章

  1. java序列化和反序列化及序列化方式
  2. 采用线性回归方法降低双目测距到平面的误差(sklearn)
  3. 【HDU6635】Nonsense Time
  4. JavaScript Array -->map()、filter()、reduce()、forEach()函数的使用
  5. 2017 CVTE Windows开发一面 3.7
  6. Redis——认识
  7. JS 全局作用域和局部作用域
  8. Linux命令-文件管理(四)
  9. 使用keil生成bin文件
  10. #pragma once vs #ifndef