小程序微信支付开发——小白版

作为一个非专业的小白却妄想自己给自家开发一个小程序,在网上各处找了各种帖子开发微信支付,费了一整天的时间,期间各种抱头、砸桌子(没用力)、惨叫...好不容易才成功搞定。怀着满满地成就感也想把自己怎么开发的过程记录下来。希望对于其他的小白们有所帮助(如果是屏幕前的你的大神的话还请见笑)。

以下为正文:

其实,一番折腾过后发现,用上微信官方提供的SDK,为小程序开发微信支付就只要三步而已。

微信支付公众号支付SDK: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

以PHP语言为例


第一步:下载SDK并解压,修改文件夹里的 lib / WxPay.config.php 的配置。

//=======【基本信息设置】=====================================
	//
	/**
	 * 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 = '***(这里填入小程序的appid)'; 
	const MCHID = '***(这里填入商户号)*';
	const KEY = '***(这里填入商户密钥,需到商户平台设置)';
	const APPSECRET = '***(这里填入小程序的appsecret)';

第二步:修改文件夹中 example / jsapi.php 只保留以下部分就行了,有注释的地方都是要修改的。

//①、获取用户openid
$tools = new JsApiPay();
$openId = $_REQUEST['openId'];  //准备接收小程序发送过来的openId
$total_fee=$_REQUEST['total_fee'];  //准备接收小程序发送过来的订单金额
//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody("test");
$input->SetAttach("test");
$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
$input->SetTotal_fee($total_fee);    //将订单金额传入,准备下单
$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);

$jsApiParameters = $tools->GetJsApiParameters($order);
echo $jsApiParameters; //输出统一下单后返回的五个参数,正好是小程序调用微信支付的API需要的那五个。

再将整个文件夹上传到服务器上,后端的准备就完成了。


最后一步:在小程序中向后端发送请求,获得必要的五个参数,调用微信支付。
(以下是小程序的 js 文件)

  wxPay: function (openId, total_fee) {
    wx.request({	//向后端发起请求,由后端调用 jsapi.php 统一下单并返回结果
      url: 'https://www.yourhost.com/WxpayAPI_php_v3.0.1/example/jsapi.php',//将www.yourhost.com改成你自己的域名
      header: {
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      data: {
        openId: openId, //这里向后端传送用户的openId
        total_fee: total_fee,  //这里向后端传送订单的金额
      },
      success: function (res) {
        console.log(res.data);
        wx.requestPayment({	//将返回的参数对应填上去就大工告成啦!
          'timeStamp': res.data.timeStamp,
          'nonceStr': res.data.nonceStr,
          'package': res.data.package,
          'signType': res.data.signType,
          'paySign': res.data.paySign,
          success: function (res) {
            console.log(res);
          },
          fail: function (res) {
 	    console.log(res);
 }, }); } }); },

以上


就算只是这么简单的三个操作,也已经把我折腾得死去活来,翻来覆去了。真正打通微信支付的那一瞬间整个人大呼了一口气,感觉就像是突然从笼里逃出一样。
想想茫茫然不知所措的时候在网上受大神们各种分享的惠及,于是决定也把自己这一天来折腾的成果分享给大家。希望也能惠及到无助的你。


最后,如果不周,还请见笑。毕竟我可能也懒得再改了。。。

你可能感兴趣的:(小程序微信支付开发——小白版)