ipaynow
来自于:开发者立即使用
-
generatePresignMessage doSignature pay
概述
ipaynow(现在支付)封装了支付宝、微信、银联、点卡充值卡、百度支付等多个渠道的支付接口。使用此模块可轻松实现各个渠道的支付功能。
使用之前需要先到ipaynow注册,并根据技术文档部署 Server SDK。 需要参考聚合支付SDK中后台接口文档,开发后台接口使用聚合支付秘钥对交易数据进行签名。
不能同时添加的模块:aliPay, pingpp, wx, weiXin, wxPay
使用此模块之前需先配置config文件的Feature,方法如下
名称:ipaynow
参数:urlScheme
描述:配置微信专用的URL Scheme,使得本应用可以启动微信客户端,并与之交换数据,同时可以从支付宝客户端(微信暂时不能自动返回)返回到本应用。
配置示例:
<feature name="ipaynow">
<param name="urlScheme" value="wxd0d84bbf23b4a0e4"/>
</feature>
字段描述:
1.param-urlScheme:声明此字段为URL Scheme类型
generatePresignMessage
获取待签名字符串
generatePresignMessage({params}, callback(ret, err))
params
appId:
- 类型:字符串
- 默认值:无
- 描述:商家从ipaynow申请的商户应用唯一标识,不能为空
mhtCharset:
- 类型:字符串
- 默认值:无
- 描述:商户字符编码,定值UTF-8,不能为空
mhtCurrencyType:
- 类型:字符串
- 默认值:无
- 描述:商户订单币种类型,156为人民币,不能为空
mhtOrderAmt:
- 类型:字符串
- 默认值:无
- 描述:商户订单交易金额,单位为分,不能为空
mhtOrderDetail:
- 类型:字符串
- 默认值:无
- 描述:商户订单详情,不能为空
mhtOrderName:
- 类型:字符串
- 默认值:无
- 描述:商户商品名称,不能为空
mhtOrderNo:
- 类型:字符串
- 默认值:无
- 描述:商户订单号,不能为空
mhtorderStartTime:
- 类型:字符串
- 默认值:无
- 描述:商户订单开始时间,yyyyMMddHHmmss,不能为空
mhtOrderType:
- 类型:字符串
- 默认值:无
- 描述:商户交易类型,01为普通消费,不能为空
notifyUrl:
- 类型:字符串
- 默认值:无
- 描述:商户后台通知URL,不能为空
consumerId:
- 类型:字符串
- 默认值:无
- 描述:客户ID,可以为空
consumerName:
- 类型:字符串
- 默认值:无
- 描述:客户名称,可以为空
mhtOrderTimeOut:
- 类型:字符串
- 默认值:无
- 描述:商户订单超时时间60~3600(秒),默认3600,可以为空
mhtReserved:
- 类型:字符串
- 默认值:无
- 描述:商户保留域 ,不能为空
payChannelType:
- 类型:字符串
- 默认值:无
- 描述:渠道类型,下列中的一个值,银联支付:11,支付宝支付:12,微信支付:13,点卡支付:16,充值卡支付:19,百度支付:50,为空时是聚合支付
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
result: // success或fail
preSignStr: //待签名字符串(url编码)
msg: //当result为fail时出现该字段,说明错误原因
}
err:
- 类型:JSON 对象
内部字段:
{
msg:”” //错误描述
}
示例代码
var da = (new Date()).format("yyyyMMddHHmmss");
var demo = api.require("ipaynow");
var param = {
appId: "1408709961320306",
mhtCharset: "UTF-8",
mhtCurrencyType: "156",
mhtOrderAmt: "10",
mhtOrderDetail: "关于订单验证接口的测试",
mhtOrderName: "iOS插件测试用例",
mhtOrderNo: da,
mhtorderStartTime: da,
mhtOrderType: "01",
notifyUrl: "http://localhost:10802/"
};
demo.generatePresignMessage(param, function(ret, err) {
alert(ret.originStr);
});
补充说明
方法输出样例:
{"result":"success","preSignStr":"appId%3D1408709961320306%26mhtCharset%3DUTF-8%26mhtCurrencyType%3D156%26mhtOrderAmt%3D10%26mhtOrderDetail%3D%E5%85%B3%E4%BA%8E%E8%AE%A2%E5%8D%95%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3%E7%9A%84%E6%B5%8B%E8%AF%95%26mhtOrderName%3DIOS%E6%8F%92%E4%BB%B6%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B%26mhtOrderNo%3D20150304114640%26mhtOrderStartTime%3D20150304114640%26mhtOrderType%3D01%26notifyUrl%3Dhttp%3A%2F%2Flocalhost%3A10802%2F"}
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
doSignature
对订单信息进行签名,商户也可选择自行处理签名不调用此方法,只须pay方法中的data参数满足条件即可。 该方法需要与商户后台签名接口配合使用,商户服务器应获取paydata字段中的内容,对内容做url解码,并对解码后的内容进行签名处理。 签名公式为MD5(服务器接收的解码内容+MD5(聚合支付平台发放的APP秘钥));
doSignature({params}, callback(ret, err))
params
preSignStr:
- 类型:字符串
- 默认值:无
- 描述:待签名字符串,不能为空
post_content:
- 类型:字符串
- 默认值:无
- 描述:后台签名请求报文,不能为空
post_url:
- 类型:字符串
- 默认值:无
- 描述:后台签名url,不能为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
result: //签名结果状态,值为success或fail
preSignStr: //待签名字符串
resultStr: //后台签名结果字符串
msg: //当为fail时出现该字段,说明错误原因
}
err:
- 类型:JSON 对象
内部字段:
{
msg: "" //错误描述
}
示例代码
var originStr = ret.originStr; //ret为上一步执行结果
var url = "http://yuyangnews.ipaynow.cn/ZyPluginPaymentTest_PAY/api/pay2.php";
var demo = api.require('ipaynow');
var param = {
originStr: originStr,
presignStr: "paydata=" + originStr,
url: url
};
demo.doSignature(param, function(ret, err) {
alert(ret.resultStr);
});
补充说明
方法输出样例:
{"result":"success","resultStr":"mhtSignature=9e5ca89f18b872278fd18e9838d91da2&mhtSignType=MD5","preSignStr":"appId%3D1408709961320306%26mhtCharset%3DUTF-8%26mhtCurrencyType%3D156%26mhtOrderAmt%3D10%26mhtOrderDetail%3D%E5%85%B3%E4%BA%8E%E8%AE%A2%E5%8D%95%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3%E7%9A%84%E6%B5%8B%E8%AF%95%26mhtOrderName%3DIOS%E6%8F%92%E4%BB%B6%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B%26mhtOrderNo%3D20150304114640%26mhtOrderStartTime%3D20150304114640%26mhtOrderType%3D01%26notifyUrl%3Dhttp%3A%2F%2Flocalhost%3A10802%2F"}
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pay
支付订单
pay({params}, callback(ret, err))
params
data:
- 类型:字符串
- 默认值:无
- 描述:商户的订单信息,key=“value”形式,以&连接,(待签名串&mhtSignType=MD5&mhtSignature=签名串),不能为空
urlSchema:
- 类型:字符串
- 默认值:无
- 描述:商户app的urlSchema,和config文件中的urlScheme相同,不能为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
result: //返回的支付结果, [success]支付成功、[fail]支付失败、[cancel]支付取消;
}
err:
- 类型:JSON 对象
内部字段:
{
msg:"" //错误描述
}
示例代码
var paydata = ret.originStr + "&" + ret.resultStr; //ret为上一步执行结果
var demo = api.require('ipaynow');
var param = {
data: paydata,
urlSchema: "UZApp"
};
demo.pay(param, function(ret, err) {
alert(ret.result);
});
补充说明
方法输出样例:
{"result":"[success]支付成功"}
可用性
iOS系统,Android系统 可提供的1.0.0及更高版本