调起任意微信支付的前提(必须安装zmjwxapi这个包,并且在需要调起支付的地方添加以下代码):
/**引入命名空间*/
using ZmjWxApi;
/**创建支付对象*/
var npay = new WxPayApi("商户的id", "商户API证书序列号", "商户API证书本地路径", "微信app的id", "支付结果通知的url");
调起微信二维码支付时服务器后台需要先拿到二维码图片的url:
/**调起二维码支付*/
var url = npay!.NativePlaceOnOrder("商户自己的订单编号", "商品名称和描述", "附加信息", money);//money为订单总价格,按照分来算,比如:1元=100分,所以money=100表示一元
然后生成二维码图片:
/**将url变成二维码,扫码就可以支付了*/
<img src="https://www.zhaimaojun.cn/QrCode/?color=black&code={上面调用方法得到的url}" />
小程序,小游戏等微信自身环境中直接调起支付(由于证书不能附带在小程序中,所以一些参数只能服务器后台生成后传回前端):
/**下面是小程序小游戏等中使用jsapi调起支付*/
var turl = npay.JsApiPlaceOnOrder("支付者的openid", "商户自己的订单编号", "商品名称和描述", "附加信息", money);//money为订单总价格,按照分来算
var res = WxPayApi.GetApiPaySign("商户自己的订单编号", "小程序的appid", turl, "商户证书的本地地址", "商户id");//这里返回的res是一个object,发送给小程序后,小程序上调起支付如:
wx.requestPayment({timeStamp:r.data.timestamp,nonceStr:r.data.nonce,package:'prepay_id=' + r.data.prepayid,signType:'RSA',paySign:r.data.sign,success(e){})
/**小程序中调起支付需要注意:需要小程序用户先登录并且获取到openid,其次小程序要绑定到微信商户上,否则调起jsapi会失败*/
调起app支付时,需要先在后台生成调起支付所需的sign,由于考虑到安全问题,商户的证书不能附带到app中,所以需要app先调起后台接口,生成sign等相关参数,然后再调起微信支付:
/**下面是小程序小游戏等中使用jsapi调起支付*/
var turl = npay.AppPlaceOnOrder("商户自己的订单编号", "商品名称和描述", "附加信息", money);//money为订单总价格,按照分来算
var res = WxPayApi.GetApiPaySign("商户自己的订单编号", "小程序的appid", turl, "商户证书的本地地址", "商户id");//这里返回的res是一个WxRSASigndParams对象,其中包含生成的可以调起支付所需的相关参数,发送到手机app前端后,前端可以直接使用这些参数调起微信app支付