前端调用微信支付接口


本文摘自PHP中文网,作者jacklove,侵删。

支付按钮的点击事件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

$(?.Save_Patient_Msg?).click(function(){

    $(?.Save_Patient_Msg?).off(?click?);

    var hrdfId = getOrderId();

    var txnAmt = $(?.sum_pay.font-red?).html();

      

    var data = {orderId: hrdfId, txnAmt: "0.01",

        prodDesc: "远程诊断服务", callType: "JSAPI",

        access_token: getUrlParam("access_token")

    };

    $.ajax({

        type: ?POST?,

        url: ?/hims/api/commonPay/queryTransNo?access_token=? getUrlParam(?access_token?),

        dataType:?json?,

        contentType:?application/json?,

        data: JSON.stringify(data),

        success: function(Wxres){

          if(!Wxres){

            $.alert(?服务器拥堵,请稍后访问?)

          }else{

              console.log(Wxres);

              if(Wxres.data.respCode == ?fail?){

                $.alert(Wxres.data.respMsg);

              }else{

                 //10 微信支付接口

                    // 10.1 发起一个支付请求

                    // 注意:此 Demo 使用 2.7 版本支付接口实现,建议使用此接口时参考微信支付相关最新文档。

                    var param = Wxres.data;

                    wx.config({

                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

                        appId: ?wx403ead26691402fb?, // 必填,公众号的唯一标识

                        timestamp: param.timestamp, // 必填,生成签名的时间戳

                        nonceStr: param.noncestr, // 必填,生成签名的随机串

                        signature: param.signJs,// 必填,调用js签名,

                        jsApiList: [?chooseWXPay?] // 必填,需要使用的JS接口列表,这里只写支付的

                    });

                    wx.chooseWXPay({

                        timestamp: param.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

                        nonceStr: param.noncestr, // 支付签名随机串,不长于 32 位

                        package: "prepay_id=" param.transNo, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)

                        signType: "MD5", // 签名方式,默认为?SHA1?,使用新版支付需传入?MD5?

                        paySign: param.sign, // 支付签名

                        success: function (res) {

                            if(res.errMsg == "chooseWXPay:ok"){

                                //alert("支付成功");

                                window.location.href  = "/hims/weixin/pages/Order_ok.html?access_token=" getUrlParam("access_token");

                            }else{

                                alert(res.errMsg);

                            }

                        },

                        cancel: function(res){

                            //alert(?取消支付?);

                        }

                    });

                }

            }  

        },

        error:function(data){

            var msg =  data.message || data.status;

            $.alert(?服务器错误? msg);

        }

    });  

    return false;

});

获取url代码

1

2

3

4

5

6

7

function getUrlParam(name){

    //构造一个含有目标参数的正则表达式对象

    var reg = new RegExp("(^|&)"  name  "=([^&]*)(&|$)");

    //匹配目标参数

    var r = window.location.search.substr(1).match(reg);

    //返回参数值

    if (r!=null) return unescape(r[2]); return null;}

本文讲解了前端调用微信支付接口,更多相关内容请关注php中文网。

阅读剩余部分

相关阅读 >>

h5微信支付之引入微信的js-sdk包失败的解决方法

微信支付成功,回调没有进来?

前端调用微信支付接口

更多相关阅读请进入《微信支付》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...