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, ...
随机推荐
- microsoft visual c++ 14.0 is required问题解决办法
方法有两个: 1.绕过pip,手动下载包 2.升级vc 详情参考:https://blog.csdn.net/amoscn/article/details/78215641
- delphi 控件编辑器
控件编辑器和属性编辑器类似 http://www.rgzz.sdedu.net/ebook/hdbook/computer/bc/delphizhuanti/rmjq/028.htm TCommonD ...
- spring Boot 上传文件,10天后,不能上传的bug
起因 公司研发人员 部署服务在阿里云 ecs 服务器; 上传文件过1周左右文件自动丢失; 排查思路: (1).查询tomcat 启动日志出现如下信息: java.io.IOException: The ...
- angular的启动原理
当你用浏览器去访问index.html的时候,浏览器依次做了如下一些事情: 加载html,然后解析成DOM: 加载angular.js脚本:加载完成后自执行,生成全局angular对象,监听DOMCo ...
- P、NP、NPC和NP-Hard相关概念的图形和解释
P.NP.NPC和NP-Hard相关概念的图形和解释 http://blog.csdn.net/huang1024rui/article/details/49154507 一.相关概念 P: 能在多项 ...
- python实现根据目标字符串修改一下行
需求: 根据source和dest两个文件,找出新增的命令行,然后在xml文件中根据命令修改id 输入souce: ADD 100 SUB 200 输入dest: MUL 300 DIV 400 AD ...
- ArcGIS 栅格数据教程
ArcGIS 栅格数据教程 全部8个教程,带详细操作步骤和原始数据. 技术咨询:谢老师,135_4855_4328,xiexiaokui#139.com ArcGIS 10.5 此教程中的练习将使用样 ...
- ROS:ROS操作类MK.cs
class MK { Stream connection; TcpClient con; public MK(string ip,int port) { con = new TcpClient(); ...
- FMS Dev Guide学习笔记(验证客户端)
一.开发交互式的媒体应用程序 1.使用客户端对象的属性 当一个客户端连接上服务器上的一个应用,服务端就会创建一个包含这个客户端信息的客户端对象并且将它传递给application.onConn ...
- android listview中item通过viewpager实现《IT蓝豹》
android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...