在app开发过程中,关于支付宝模块apiPayPlus你有没有遇到过这样的问题:微信支付可以轻松通过,支付宝支付会出现闪退的问题(错误代码:ALI40247)。
或许,你绞尽脑汁想出了解决方案,但从来没写过开发心得,不能供其他开发小伙们学习参考。也或许,你身心正在被这个问题折磨着。今天,柚子君给大家转载一位优秀开发者的成功经验,希望能帮助到大家。
关于支付宝模块apiPayPlus的使用成功经验分享
1、支付宝这边必须签约成功,这是必须的。
在开发者中心查看自己的应用,是否已经成功上线。
2、查看这里的app支付是否已经生效
这里是很重要的一步。因为开发者用的是aliPayPlus的第二种支付方式,不知道是用RSA2还是RAS1,所以两处都设置成一样。这个地方需要下载支付宝提供的密钥生成工具来生成。
密钥格式选择pkcs8,密钥长度为1024或者2048,这个不影响。
然后把商户应用公钥填写到支付宝官网开发者中心的接口加签方式里面,这样支付宝服务器端就配置完成。
3、接下来就是做app客户端的相关配置
1、根据教程,配置config.xml和key.xml 这两个配置在官方文档已经明细说明,不再过多细述。
2、支付代码:
var aliPayPlus = api.require('aliPayPlus');
aliPayPlus.config({
appId : '',
rsaPriKey : '',
}, function(ret, err) {
if (ret.status == true) {
aliPayPlus.pay({
subject : '货物运输款',
body : '货物运输款',
amount : alimoney,
tradeNO : paytradeNo
}, function(ret, err) {
if (ret.code == 9000) {
api.toast({
msg : '支付成功'
});
paylog(1);
} else {
if (ret.code == 6001) {
api.toast({
msg : '支付已取消'
});
} else {
alert('支付失败 code:' + err.code);
}
}
});
}
});
特别说明:不用aliPayPlus.config好像有问题。所以开发者微信和支付宝都用这个config方法。到这里,完美实现支付。
结论:公钥和私钥的问题
另,由于开发者开发的软件,不只是APP端能支付,必须电脑端(客户网站)也要能支付。所以问题又来了:由于开发者用的是.net开发,所以PC端私钥就不能采用pkcs8,而是用非pkcs8来生成密钥对。经过测试,APP端使用的是RSA的密钥对。那么网站集成就用RSA2。 这样网站和手机支付都通过了。
注意这里,rsa2是网站使用的非pkcs8密钥,RSA是手机使用的pkcs8密钥。
新版的支付宝.net是没有demo包,只能下载sdk,把sdk集成到自己的网站。采用官方提供的请求示例就可以实现网站支付了。多看看支付宝的文档亲们。
另外,支付宝这边有技术员可以在线帮助,如果真的过不去就在线请求帮助。不然你搞到天黑都不一定实现。
另外,这里也提供微信的第二种支付方案的代码:
//微信支付 ======第二种方案
function wxpay() {
var wxPay = api.require('wxPay');
wxPay.config({
apiKey : '',
mchId : '',
partnerKey : '',
notifyUrl : ''
}, function(ret, err) {
//coding...
if (ret.status) {
//alert('配置商户支付参数成功');
//alert('对接支付接口成功,即将跳转支付界面。');
wxPay.pay({
description : '货物运输款', //商品或支付订单简要描述
totalFee : smoney, //订单总金额,只能为整数,单位:分(¥)
tradeNo : paytradeNo
}, function(ret, err) {
if (ret.status) {
paylog(2);
} else {
//alert(err.code);
//错误码:
//-2(用户取消)
//-1(可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等)
//1(必传参数缺失)
if (err.code == -2) {
alert("已经取消支付");
}
if (err.code == -1) {
alert("未知错误");
}
if (err.code == 1) {
alert("必传参数缺失");
}
}
});
} else {
//alert(err.code);
alert("对接支付接口失败");
}
});
}
分享到:
相关推荐
本文来自于网络,本文主要介绍了特征工程,以及一些常见的特征工程的方法,以及自然语言处理的特征工程,希望对您的学习有所帮助。协同过滤CollaborativeFiltering特征工程FeatureEngineering推荐系统实战注意点首先...
1入门直播话术干货教程.zip直播剧本文案资料下载1入门直播话术干货教程.zip直播剧本文案资料下载1入门直播话术干货教程.zip直播剧本文案资料下载1入门直播话术干货教程.zip直播剧本文案资料下载 1.合个人学习技术做...
知识点1:UISearchBar的基本使用 UISearchBar是iOS开发中常用的搜索栏控件,通过它我们可以实现搜索功能。UISearchBar有多种delegate方法,例如searchBarShouldBeginEditing、searchBarShouldEndEditing、...
干货|TD-LTE承载地铁信号无线网络规划方案
良好的做法是公开暴露问题,使用可视化工具跟踪不良品,及时分析原因并采取纠正措施。缺乏追溯性和问题解决机制的工厂可能存在品质风险。 关注点五是设备维护和保养。设备的良好运行状态是保证生产连续性和产品质量...
干货|车外门把手设计指导_new.pdf
以下是C#语言学习的一些关键干货教程内容: 基础语法 变量:用于存储数据,需要先声明变量的类型,再赋值。 运算符:包括算术运算符(如加、减、乘、除)、关系运算符(用于比较两个值的大小关系)、逻辑运算符...
IGBT(Insulated Gate Bipolar Transistor)模块是电力电子设备中的关键组件,广泛应用于变频器、电源、电机驱动等领域。本篇文章将深入解析IGBT模块的技术参数,包括其自身的参数、反向恢复二极管(Diode)参数、热...
"干货|接地设计指导.pdf" 本文档对应的知识点包括: 1. EMC设计指导:文档中涉及到EMC的设计指导,包括EMC的基本概念、EMC设计的重要性、EMC设计的步骤、EMC设计的工具和方法等。 2. 接地设计:文档中讨论了接地...
本资源包括ReactJS中文干货视频教程!欢迎下载学习!!!
3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程关于3dmax的初级教程,适合初学者。3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程3d教程关于3dmax的初级教程,适合初学者。3d...
在这个阶段中,我们不得不使用一个工具——用户“画像”标签体系。今天我们就来说说用户画像。本文重点:1.用户画像在数据分析中的应用;2.如何构建用户画像。用户画像(UserPersona)的概念最早由交互设计之父...
上一期我们向大家介绍了如何解决DC/DC电源常见的应用问题,这次我们将视线聚焦在机壳开关电源上,机壳电源应用领域十分广泛,不同的应用环境也会对产品有特殊的要求,所以在使用中也会出现一些问题,例如:启动输出...
- 功能性:门把手首先必须满足开启车门的基本需求,设计时应考虑使用者的力度、握持感以及开启角度,确保在各种环境下都能方便、稳定地使用。 - 安全性:在极端天气或事故情况下,门把手应保持可靠,不会因冰冻、...
【Python教程全程干货无废话】是一份针对2022年的全新《零基础入门学习Python》教程,旨在为初学者提供高效、实用的学习路径。Python作为一种广泛应用的编程语言,其简洁明了的语法和强大的功能使其成为入门编程的...
前言新能源电控系统比传统车更加复杂,安全要求更高,其中最为人们所关注的要点之一就是功能安全的理念。在这个领域,国际汽车厂商(宝马、通用、福特等)、汽车零部件供应商(博世、德尔福等)早已采用ISO26262标准...