APIcloud制作APP 微信支付与支付宝支付
首先要在云端绑定相应模块如alipay和wxpay其次编写代码。
配置区域
var cfg = {
webName:'',//APP名字
payDebug:true,
isUseWxPay:true,
isUseAliPay:true,
wxApiKey : 'wx708c359136e7af15',//支付apikey
wxMchId : '1488568362',//APPID
wxPartnerKey : '706709a80d19f5587804a834bbe0158a',//PartnerKey
wxNotifyUrl : 'http://whtouzi.zhonghuapaoyu.cn/index.php/api/user/userRecharge',//返回后台地址
aliPayPid : '2088721942591903',//appid
aliPayPriKey : '秘钥',
aliPayPubKey : '公钥',
aliPayNotifyURL : 'http://whtouzi.zhonghuapaoyu.cn/index.php/api/user/userRecharge',//返回后台地址
//秒,验证码发送间隔
checkCodeInterval:120
};
其次定义支付函数
//微信支付
function wxPay(func, params,debug) {
var wx = api.require('wx');
wx.isInstalled(function(ret, err){
params.money=n;
params.title='充值';
params.content='充值'
params.no=noo2;
if(ret.installed){
toast('正在进行微信支付,请稍候...');
if (isNull(params.title)) {
params.title = "充值";
}
if (isNull(params.content)) {
params.content = "充值";
}
if (!isNull(params.money)) {
var m = n;
params.money = m < 0.01 ? 0.01 : m;
} else {
params.money = 0.01;
}
if (isNull(params.no)) {
params.no = String(new Date().getTime()) + String(parseInt(Math.random() * 1000));
}
var tn = String(params.no) + String((new Date()).valueOf());
tn = tn.substr(0,32);
// alert('ccccccccccc');
var wxPay = api.require('wxPay');
wxPay.config({
apiKey : cfg.wxApiKey,
mchId : cfg.wxMchId,
partnerKey : cfg.wxPartnerKey,
notifyUrl : cfg.wxNotifyUrl
}, function(ret, err) {
if (ret.status) {
// alert('11111111');
// alert(ret.status);
wxPay.pay({
description : String(params.title),
totalFee : String(parseInt(params.money * 100)),
tradeNo : tn,
}, function(ret, err) {
var result = JSON.stringify(err);
var results = JSON.stringify(ret);
// alert(result+'***'+results);
//alert(err.code);
if (ret.status) {
toast('支付成功');
func('success');
} else {
if (err.code == -2) {
toast('用户取消支付');
func('cancel');
}
if (err.msg == 'NOTENOUGH') {
toast('余额不足');
func('fail');
}
if (err.msg == 'ORDERPAID') {
toast('商户订单已支付');
func('fail');
}
if (err.msg == 'ORDERCLOSED') {
toast('订单已关闭');
func('fail');
}
}
});
} else {
toast('商户配置错误,错误码:' + err.code);
}
});
}else{
toast('您当前设备不支持微信支付,请安装微信客户端后使用。');
}
});
}
//支付宝支付
function aliPay(func, params,debug) {
/*if(typeof debug != 'undefined' && debug == true){
tanConfirm(['调试支付成功','调试取消支付','取消'],'支付宝支付调试\nTitle:'+params.title+'\nMoney:'+params.money,function(i){
if(i==0){
func('success');
}
if(i==1){
func('cancel');
}
});
return false;
}*/
params.money=n;
params.title = "充值";
params.content = "充值";
if (isNull(params.title)) {
params.title = "充值";
}
if (isNull(params.content)) {
params.content = "充值";
}
if (!isNull(params.money)) {
var m = parseFloat(params.money);
params.money = m < 0.01 ? 0.01 : m;
} else {
params.money = 0.01;
}
params.no=noo;
if (isNull(params.no)) {
params.no = '201708021365';
}
var aliPay = api.require('aliPay');
aliPay.config({
partner : cfg.aliPayPid,
seller : cfg.aliPayPid,
rsaPriKey : cfg.aliPayPriKey,
rsaPubKey : cfg.aliPayPubKey,
notifyURL : cfg.aliPayNotifyURL
}, function(ret, err) {
if (ret.status) {
aliPay.pay({
subject : params.title,
body : params.content,
amount : params.money,
tradeNO : params.no
}, function(ret, err) {
var code = ret.statusCode;
if (code == 9000) {
toast('支付成功');
func('success');
} else if (code == 6001) {
toast('用户取消支付');
func('cancel');
} else {
toast('支付出错,错误代码:'+code);
//func('fail');
}
});
}
});
}
最后在body调用JS和方法即可
调用微信
oo=ret.order_id;
var p = {
};
noo2=oo+'n';
//
wxPay(function(code){
if(code == 'success'){
dpost({
act:'pay',
sn:noo2,
paymentType:'wxpay'
},function(d){
if(d == 'success'){
tan('充值成功!');
location.reload(true)
}
if(d == 'fail'){
tan('充值失败');
}
});
}
if(code == 'fail'){
tan('充值失败');
}
},p,cfg.payDebug);
}
});
调用支付宝
ooo=ret.order_id;
var p = {
};
noo=ooo;
//
aliPay(function(code){
if(code == 'success'){
dpost({
act:'pay',
sn:noo,
paymentType:'alipay'
},function(d){
if(d == 'success'){
tan('充值成功!');
location.reload(true)
}
if(d == 'fail'){
tan('充值失败!');
}
});
}
if(code == 'fail'){
tan('充值失败!');
}
},p,cfg.payDebug);
});
订单号可以从后台获取,再在前台获取充值金额即可。
APIcloud制作APP 微信支付与支付宝支付的更多相关文章
- apicloud含有微信支付。支付宝支付和苹果内购的代码
apicloud含有微信支付.支付宝支付和苹果内购的代码 <!DOCTYPE html> <html> <head> <meta charset=" ...
- 微信支付与支付宝支付java开发注意事项
说明:这里只涉及到微信支付和淘宝支付 以官网的接口为准,主要关注[网关].[接口].[参数][加密方式][签名][回调] 第一步,了解自己的项目要集成的支付方式 常见的有扫码支付.网页支付.APP支付 ...
- 商家 APP 如何接入新版支付宝支付,老版本商家如何升级
代码地址如下:http://www.demodashi.com/demo/14006.html 前言 支付宝移动支付2.0版本对比1.0版本做了较大更新,新申请的商家都需要采用最新2.0版本 SDK ...
- 微信支付、支付宝支付和QQ钱包支付
最近忙于对接微信支付和支付宝支付,注册微信公众号,认证公众号,注册微信支付商户号并进行认证: 签约支付宝支付产品(手机网站支付.PC网站支付),注册支付宝企业账号(企业账号权限更大): 注册QQ钱包商 ...
- 前端:微信支付和支付宝支付在pc端和h5页面中的应用
1:h5微信支付 使用的是https://pay.weixin.qq.com/wiki/doc/api/index.html 中的 (1):公司需要首先要配置公众号微信支付地址和测试白名单(支付的时 ...
- Mui 微信支付、支付宝支付
利用mui 发起手机微信和支付宝支付 payStatement :调起微信支付接口的参数 参考文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.ph ...
- iOS----支付(微信支付、支付宝支付、银联支付控件集成支付)(转)
资料 支付宝 //文档idk都包含了安卓.iOS版 银 联 银联官网资料 Demo Demo给了一个订单号,做测试使用,若出现支付失败什么的,可能是已经被别人给支付了,或者是服务器订单过期了 ~ 一. ...
- 转《基于Ionic3实现微信支付和支付宝支付》
在Ionic应用里实现支付并不难,但是有的坑真是不爬不知道. 一:支付宝支付 网上关于支付宝支付cordova插件真是非常多,但是大多会报一些让你很无语的错误.比如sdk早已过时不是最新的,或者没有出 ...
- PHP后台支付的开发:微信支付和支付宝支付
关于支付的流程之类的就不做解释,大家可以自行搜索! 微信支付 项目前提:本人用的是tp框架,PHP语言下载到微信平台提供的微信支付接口文件,放在了tp第三方类库vendor,命名为WxpayAPI, ...
随机推荐
- oracle常用函数详解(详细)
转自:https://www.cnblogs.com/lxl57610/p/7442130.html Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函 ...
- idea 与springboot 快捷键
ctrl + m 还原 查询 getmapping 修改默认端口号
- awk的用法
awk是什么 awk是一种优良的文本处理工具,同时也是一种脚本语言.awk的三位作者者已将它正式定义为“样式扫描和处理语言”.awk脚本允许您创建简短的程序,这些程序读取输入文件.为数据排序.处理数据 ...
- java自定义抛出的异常Exception
package com.zhanzhuang.exception; public class CustomizeException { public static void main(String[] ...
- Review CSS Selectors
Throughout this lesson, you learned how to select HTML elements with CSS and apply styles to them. L ...
- 高并发架构技术|缓存失效、缓存穿透问题 PHP 代码解决
问题描述 缓存失效: 引起这个原因的主要因素是高并发下,我们一般设定一个缓存的过期时间时,可能有一些会设置5分钟啊,10分钟这些:并发很高时可能会出在某一个时间同时生成了很多的缓存,并且过期时间在同一 ...
- T-SQL行合并成列与列拆分成行
本文出处:http://www.cnblogs.com/wy123/p/6910468.html 感觉最近sql也没少写,突然有一点生疏了,对于用的不是太频繁的一些操作,时间一久就容易生. 多行的某一 ...
- javascript 模拟java 实现继承的5种方式
1.继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(t ...
- 10. Lambda表达式.md
为了简化匿名内部类的代码,具体定义: 例如将9.内部类中的匿名内部类例子: 原来代码: //Main.java public class Main { public static void main( ...
- PowerDesigner 设置code不等于name
设置 code不等于name: 工具 - 常规选项 - “Dialog” - "code不等于name",取消选中