基於Bmob在小程式端實現一鍵支付

weixin_34290000發表於2017-07-02
2599324-227146631816a866.png

幾個容易忽略的細節

1.需要先拿到openid

var openId = Bmob.User.current().get('authData').weapp.openid;

2.事先宣告一個that

var that = this;

Bmob文件沒提,但看到控制檯報沒有that定義,也就自然會加上了

3.需要作實名認證

未認證會報 code: 10012, message: "your credit info must verify ok."

認證入口:https://bmob.cn/account/info

2599324-9818d889de4b0fbe.png
實名認證.png

4.Bmob付費會員享受支付,最低100元/月

價目表:http://bmob.cn/prices

5.Bmob後臺配置項

應用配置->微信小程式帳號服務配置

2599324-c1063e5ba396346d.png
pay-config.png

6.程式碼如下——略有改動

var that = this;
var openId = Bmob.User.current().get('authData').weapp.openid;
// console.log(openId);
//傳引數金額,名稱,描述,openid
Bmob.Pay.wechatPay(0.01, '名稱1', '描述', openId).then(function (resp) {
  console.log('resp');
  console.log(resp);

  that.setData({
    loading: true,
    dataInfo: resp
  })

  //服務端返回成功
  var timeStamp = resp.timestamp,
    nonceStr = resp.noncestr,
    packages = resp.package,
    orderId = resp.out_trade_no,//訂單號,如需儲存請建表儲存。
    sign = resp.sign;

  //列印訂單號
  console.log(orderId);

  //發起支付
  wx.requestPayment({
    'timeStamp': timeStamp,
    'nonceStr': nonceStr,
    'package': packages,
    'signType': 'MD5',
    'paySign': sign,
    'success': function (res) {
      //付款成功,這裡可以寫你的業務程式碼
      console.log(res);
    },
    'fail': function (res) {
      //付款失敗
      console.log('付款失敗');
      console.log(res);
    }
  })

}, function (err) {
  console.log('服務端返回失敗');
  console.log(err.message);
  // common.showTip(err.message, 'loading',{},6000);
  console.log(err);
});

文件出處:http://docs.bmob.cn/data/wechatApp/b_developdoc/doc/index.html#小程式支付

甩掉PHP諸多SDK,拋開服務端配置,不用雲函式,不用雲引擎,Bmob一行程式碼搞定預下單,這酸爽,簡直了!

原始碼下載:http://git.oschina.net/laeser/dinner

相關文章