Python_微信支付(云开发)

一、创建云开发小程序

  1.初始化云开发环境

//app.js
App({
  onLaunch: function () {
    wx.cloud.init({
      //初始化云开发环境
      env: 'wxypay' //微信云的环境ID
    })
  }
})

  2.同步云函数

二、创建支付云函数

  1.新建云函数pay

  2.在新建云函数pay的文件中,安装第三方依赖tenpay,安装成功会在该文件中生成package.json文件   

npm i tenpay

  3.编写云函数pay(index.js文件中)

// 云开发实现支付
const cloud = require('wx-server-sdk')
cloud.init()
//1.引入支付的第三方一来
const tenpay = require('tenpay');
//2.支付配置
const config = {
  //appid:'小程序的appid',
  appid:'wxc49d41bf015a06da',
  mchid:'你的微信商户号',
  partnerKey:'微信支付安全密钥',
  notify_url:'支付后回调地址',
  spbill_create_ip:'127.0.0.1'
};

exports.main = async(event,context) => {
  const wxContext = cloud.getWXContext()
  let {
    orderid,
    money
  } = event;
  //3.初始化支付
  const api = tenpay.init(config);
  let result = await api.getPayParams({
    out_trade_no:orderid,
    body:'商品简单描述',
    total_fee:money,//订单金额
    opendi:wxContext.opendi//付款用户的openid
  });
  return result;
}

  4.将云函数上传并部署

三、提交页面,实现支付

  1.在pages中新建支付pay

  2.在pay.js文件中实现该功能 

// pages/pay/pay.js
Page({
  //提交订单
  formSubmit: function(e) {
    let that = this;
    let formData = e.detail.value
    console.log('form发生了submit事件,携带数据为:', formData)
    wx.cloud.callFunction({
      name: "pay",
      data: {
        orderid: "" + formData.orderid,
        money: formData.money
      },
      success(res) {
        console.log("提交成功", res.result)
        that.pay(res.result)
      },
      fail(res) {
        console.log("提交失败", res)
      }
    })
  },

  //实现小程序支付
  pay(payData) {
    //官方标准的支付方法
    wx.requestPayment({
      timeStamp: payData.timeStamp,
      nonceStr: payData.nonceStr,
      package: payData.package, //统一下单接口返回的 prepay_id 格式如:prepay_id=***
      signType: 'MD5',
      paySign: payData.paySign, //签名
      success(res) {
        console.log("支付成功", res)
      },
      fail(res) {
        console.log("支付失败", res)
      },
      complete(res) {
        console.log("支付完成", res)
      }
    })
  }
})

 

posted @ 2019-08-16 10:07  澄心元素  阅读(530)  评论(0编辑  收藏  举报