在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("对接支付接口失败");
}
});
}
分享到:
相关推荐
16/3/4 下午1:46项目功能大全,让你的项目一天搞定(给新手们一点干货) | iOS开发 - CocoaChina CocoaChina_让移动开发更简单
本文来自于网络,本文主要介绍了特征工程,以及一些常见的特征工程的方法,以及自然语言处理的特征工程,希望对您的学习有所帮助。协同过滤CollaborativeFiltering特征工程FeatureEngineering推荐系统实战注意点首先...
干货|供应商现场审核的“六大关注点”及“四项基本原则”.doc
1入门直播话术干货教程.zip直播剧本文案资料下载1入门直播话术干货教程.zip直播剧本文案资料下载1入门直播话术干货教程.zip直播剧本文案资料下载1入门直播话术干货教程.zip直播剧本文案资料下载 1.合个人学习技术做...
干货|接地设计指导.pdf
关于干货|车外门把手设计指导的介绍说明.rar
干货|注塑模具的浇口及流道设计.pdf
干货|车外门把手设计指导_new.pdf
干货|创业公司每次融资时如何分配股权分析.doc
以下是C#语言学习的一些关键干货教程内容: 基础语法 变量:用于存储数据,需要先声明变量的类型,再赋值。 运算符:包括算术运算符(如加、减、乘、除)、关系运算符(用于比较两个值的大小关系)、逻辑运算符...
干货|在机器学习中如何应对不均衡分类问题?.pdf
最干货|购物中心各阶段招商调整策略激活项目冷区.doc
介绍IGBT的相关参数、Diode相关参数、热性能相关参数、模块整体相关参数以及NTC相关参数,手把手教你分析特性曲线图,明确各参数的要点及意义/
万字干货|《增长黑客》的背后逻辑是什么?(上) .doc
本资源包括ReactJS中文干货视频教程!欢迎下载学习!!!
git工具的使用方法(纯干货小白教程)
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)的概念最早由交互设计之父...