首先要在云端绑定相应模块如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 微信支付与支付宝支付的更多相关文章

  1. apicloud含有微信支付。支付宝支付和苹果内购的代码

    apicloud含有微信支付.支付宝支付和苹果内购的代码 <!DOCTYPE html> <html> <head> <meta charset=" ...

  2. 微信支付与支付宝支付java开发注意事项

    说明:这里只涉及到微信支付和淘宝支付 以官网的接口为准,主要关注[网关].[接口].[参数][加密方式][签名][回调] 第一步,了解自己的项目要集成的支付方式 常见的有扫码支付.网页支付.APP支付 ...

  3. 商家 APP 如何接入新版支付宝支付,老版本商家如何升级

    代码地址如下:http://www.demodashi.com/demo/14006.html 前言 支付宝移动支付2.0版本对比1.0版本做了较大更新,新申请的商家都需要采用最新2.0版本 SDK ...

  4. 微信支付、支付宝支付和QQ钱包支付

    最近忙于对接微信支付和支付宝支付,注册微信公众号,认证公众号,注册微信支付商户号并进行认证: 签约支付宝支付产品(手机网站支付.PC网站支付),注册支付宝企业账号(企业账号权限更大): 注册QQ钱包商 ...

  5. 前端:微信支付和支付宝支付在pc端和h5页面中的应用

    1:h5微信支付 使用的是https://pay.weixin.qq.com/wiki/doc/api/index.html  中的 (1):公司需要首先要配置公众号微信支付地址和测试白名单(支付的时 ...

  6. Mui 微信支付、支付宝支付

    利用mui 发起手机微信和支付宝支付 payStatement :调起微信支付接口的参数 参考文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.ph ...

  7. iOS----支付(微信支付、支付宝支付、银联支付控件集成支付)(转)

    资料 支付宝 //文档idk都包含了安卓.iOS版 银 联 银联官网资料 Demo Demo给了一个订单号,做测试使用,若出现支付失败什么的,可能是已经被别人给支付了,或者是服务器订单过期了 ~ 一. ...

  8. 转《基于Ionic3实现微信支付和支付宝支付》

    在Ionic应用里实现支付并不难,但是有的坑真是不爬不知道. 一:支付宝支付 网上关于支付宝支付cordova插件真是非常多,但是大多会报一些让你很无语的错误.比如sdk早已过时不是最新的,或者没有出 ...

  9. PHP后台支付的开发:微信支付和支付宝支付

    关于支付的流程之类的就不做解释,大家可以自行搜索! 微信支付 项目前提:本人用的是tp框架,PHP语言下载到微信平台提供的微信支付接口文件,放在了tp第三方类库vendor,命名为WxpayAPI, ...

随机推荐

  1. oracle常用函数详解(详细)

    转自:https://www.cnblogs.com/lxl57610/p/7442130.html Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函 ...

  2. idea 与springboot 快捷键

    ctrl + m 还原 查询 getmapping 修改默认端口号

  3. awk的用法

    awk是什么 awk是一种优良的文本处理工具,同时也是一种脚本语言.awk的三位作者者已将它正式定义为“样式扫描和处理语言”.awk脚本允许您创建简短的程序,这些程序读取输入文件.为数据排序.处理数据 ...

  4. java自定义抛出的异常Exception

    package com.zhanzhuang.exception; public class CustomizeException { public static void main(String[] ...

  5. Review CSS Selectors

    Throughout this lesson, you learned how to select HTML elements with CSS and apply styles to them. L ...

  6. 高并发架构技术|缓存失效、缓存穿透问题 PHP 代码解决

    问题描述 缓存失效: 引起这个原因的主要因素是高并发下,我们一般设定一个缓存的过期时间时,可能有一些会设置5分钟啊,10分钟这些:并发很高时可能会出在某一个时间同时生成了很多的缓存,并且过期时间在同一 ...

  7. T-SQL行合并成列与列拆分成行

    本文出处:http://www.cnblogs.com/wy123/p/6910468.html 感觉最近sql也没少写,突然有一点生疏了,对于用的不是太频繁的一些操作,时间一久就容易生. 多行的某一 ...

  8. javascript 模拟java 实现继承的5种方式

    1.继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(t ...

  9. 10. Lambda表达式.md

    为了简化匿名内部类的代码,具体定义: 例如将9.内部类中的匿名内部类例子: 原来代码: //Main.java public class Main { public static void main( ...

  10. PowerDesigner 设置code不等于name

    设置 code不等于name:  工具 - 常规选项 - “Dialog” - "code不等于name",取消选中