支付宝的API调用怎么用
根据我之前做手机支付业务以及对其他支付公司的了解
不仅仅是支付宝,其他一些支付公司在手机端提供:
1、支付插件模式的接入:当在接入方确认支付后,会下载安装安全支付插件/控件/服务,然后启动这个,显示出支付项,输入支付信息,完成支付;
2、html5的支付网关:调用html5的网页网关,通用性强,兼容性好;
3、针对ios系统,只能完整下载安装支付公司的客户端,因此apple的游戏规则不容违抗;
以上三种,支付公司都会提供对应的支付API接口,只需按照支付公司接口文档中的示例完成订单传递即可。
如何调用支付宝接口代码,以及支付宝如何返回处理结
支付接口代码里都有用注释代码注释的,有一个地址就是返回你的网站的指定页面的,你还可以调用参数。 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言
支付宝接口代码怎么用
在使用支付宝支付的时候,首先必须注册一个支付宝的账户,然后下载支付宝提供的接口文件,通过支付宝提供的接口文件,实现电子商务与支付宝的交互。
在支付宝提供的接口文件中,提供了完整的实例程序,只要依照实例程序中的操作方法,将电子商务网站中指定的数据提交到支付宝提供的数组参数中,然后支付宝通过自己的定义的方法将数据提交到指定的网站中。实现代码如下所示:
require_once("alipay_service.php");require_once("alipay_config.php"); $array=explode("@",$info["spc"]);$arraynum=explode("@",$info["slc"]);$arrayinfo=array(); //创建数组$arrayinfo_count=array(); //创建数组for($i=0;$icount($array);$i++){ if($array[$i]!=""){ $m=$i+1; $sqlcart=mysql_query("select * from tb_commodity where tb_commodity_id='".$array[$i]."'",$conn); $infocart=mysql_fetch_array($sqlcart); //读取数据库中数据 array_push($arrayinfo,$infocart[tb_commodity_name]); //将购物商品的名称写入到数组中 array_push($arrayinfo_count,"商品 $m :$infocart[tb_commodity_name] 数量:$arraynum[$i]"); //将购物商品的数量写入到数组中 }}$commodity_name=implode(',',$arrayinfo); //获取商品名称$commodity_count=implode(',',$arrayinfo_count); //获取商品描述信息$parameter = array("service" = "trade_create_by_buyer", //交易类型,必填实物交易=trade_create_by_buyer(需要填写物流)"partner" =$partner, //合作商户号"return_url" =$return_url, //同步返回"notify_url" =$notify_url, //异步返回"_input_charset" = $_input_charset, //字符集,默认为GBK"subject" = $commodity_name, //商品名称,必填"body" = $commodity_count, //商品描述,必填"out_trade_no" = $ddnumber, //商品外部交易号,订单号,必填,每次测试都须修改"logistics_fee"=$yprice, //物流配送费用"logistics_payment"='BUYER_PAY', //物流配送费用付款方式:BUYER_PAY(买家支付)"logistics_type"='EXPRESS', // 物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)"price" = $amount, //商品单价,必填"payment_type"="1", // 默认为1,不需要修改"quantity" = "1", //商品数量,必填"show_url" = $show_url, //商品相关网站"seller_email" = $seller_email //卖家邮箱,必填);$alipay = new alipay_service($parameter,$security_code,$sign_type);$link=$alipay-create_url();$smarty-assign("link",$link);
这里介绍的知识通过php来实现电子商务网站与支付宝进行交互的方法。其中涉及到支付宝提供的参数和设置都是个人虚拟的,真实的参数将在实际的运作中由支付宝提供,使用支付宝时,需要想支付宝申请一个账户,然后由支付宝提供相应的参数,就可以应用此功能了。
手机App 调用支付宝接口的方式有哪些
常见的房屋租赁支付方式:
1、年付、半年付:
即一次性支付房东半年的房屋租金或一年的房屋租金。
对于部分长租并且有一定经济基础的租客来说,半年付或者年付是较好的选择。尤其一些房东为了省心,会在长租和租金一次性年付的时候,给予租客一定的优惠。且租金年付可以防止旺季时房东乱涨价的行为。
2、押一付三:
是对租赁行为中的押金和租金的一种交付方式的习惯性简洁的称谓。"押一付三",顾名思义即承租人以一个月房租作抵押,第一次先付三个月的租金。"押一付三"的首次付款是付4个月的房租,第2次付款是在入住的3个月内。
例如:房东将某间房子以500元每月的租金出租,租房者和房东商定押一付三,则租房者应该一次性付给房东三个月的房租,再交相当于一个月的租金作为押金;租房者支付的费用一起是500*3+500=2000元。
3、押二付一:
是对租赁行为中的押金和租金的一种交付方式的习惯性的称谓。"押二付一",顾名思义即承租人以两个月房租作抵押,第一次先付一个月的租金。"押二付一"的首次付款是付三个月的房租,第二次付款是在入住的一个月内。
例如:房租是1000元/月,那么第一次付款的时候是付3000元(两个月房租2000元押金+1个月房租1000元);每隔1个月后再付款的时候,由于已经押了1个月的房租,只要再付3个月房租就可以了
4、押一付一:
"押一付一",顾名思义即承租人以一个月房租作抵押,每个月按时缴纳房租。押金是用来保证承租方在租赁期间不会损坏房屋的设备,如果承租方因个人原因造成房屋设备的损坏或承租方未按合同约定的期限,如提前退租,则保证金将不会退还。
android怎么和支付宝实现接口对接
1.下载官方架包和说明文档
其实官方已经提供了安装指南,
里面有有个pdf,详细说明了说用指南,写的比较详细,可以重点参考。
下载下来,我们主要是用到Android(20120104)目录下的alipay_plugin.jar和AppDemo/assets下的alipay_plugin223_0309.apk,这两个文件是我们不能修改的支付宝api和安装包。
2. 商户签约
现在的安全机制,都是这样,客户端需要先和服务端请求验证后才能进行进一步操作,oauth也是如此。
打开登陆支付宝,点击签约入口,选择"应用类产品",填写并等待审核,获取商户ID和账户ID。
签约的时候还要向需要提供实名认证和上传应用,所以我建议先把应用做好了,最后再集成支付宝。
我大概等了1-2天审核,审核是失败的,回复是应用类型啥的应该是"虚拟货币",我改成那个马上自动就审核通过了。
3.密钥配置
解压openssl-0.9.8k_WIN32(RSA密钥生成工具).zip,打开cmd,命令行进入openssl-0.9.8k_WIN32(RSA密钥生成工具)\bin目录下,
(1).执行
openssl genrsa -out rsa_private_key.pem 1024
生成rsa_private_key.pem文件。
(2).再执行
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
生成rsa_public_key.pem 文件。
(3).在执行
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
将RSA私钥转换成 PKCS8 格式,去掉begin和end那两行,把里面的内容拷贝出来,保存到某个txt中,如rsa_private_pkcs8_key.txt中(我好像没用到这个)。
打 开rsa_public_key.pem,即商户的公钥,复制到一个新的TXT中,删除文件头”-----BEGIN PUBLIC KEY-----“与文件尾”-----END PUBLIC KEY-----“还有空格、换行,变成一行字符串并保存该 TXT 文件,然后在网站的“我的商家服务”切换卡下的右边点击“密钥管理”,然后有个"上传商户公钥(RSA)"项,选择上传刚才的TXT文件.
好了,服务器配置OK,因为这一段之前没有截图,现在弄好了又不好截图,如果有不明白的地方请大家参考官方文档。
4.引用jar和包含安装包
(1).新建android工程;
(2).copy上面说的alipay_plugin.jar到工程的libs目录下,并在java build path中通过Add External JARs找到并引用该jar;
(3).copy上面说的alipay_plugin223_0309.apk安装包到assets目录下,后面配置路径用到。
\
如果libs和assets目录没有,手动建立者两个目录。
5.调用代码整理
这里我们要严重的参考文档中AppDemo,我们建一个包 com.tianxia.lib.baseworld.alipay,把AppDemo的com.alipay.android.appDemo4包下的 源码全部copy到刚才我们自己的包下,还有res目录下的资源文件也合并到我们工程res下。
其中AlixDemo.java,ProductListAdapter.java,Products.java是示例类,我们借鉴完后可以删除。
PartnerConfig.java是配置类,配置商户的一些配置参数。
其他的类是严重参考类,直接留下使用。
PartnerConfig.java代码如下:
public class PartnerConfig { //合作商户ID。用签约支付宝账号登录ms.alipay.com后,在账户信息页面获取。 public static final String PARTNER = "xxx"; //账户ID。用签约支付宝账号登录ms.alipay.com后,在账户信息页面获取。 public static final String SELLER = "xxx"; //商户(RSA)私钥 ,即rsa_private_key.pem中去掉首行,最后一行,空格和换行最后拼成一行的字符串 public static final String RSA_PRIVATE = "xxx"; //支付宝(RSA)公钥 用签约支付宝账号登录ms.alipay.com后,在密钥管理页面获取。 public static final String RSA_ALIPAY_PUBLIC = "xxx"; //下面的配置告诉应用去assets目录下找安装包 public static final String ALIPAY_PLUGIN_NAME ="alipay_plugin223_0309.apk";}
AlixDemo中代码是最终的调用代码在onItemClick(AdapterView? arg0, View arg1, int arg2, long arg3) {}中,下面我们提取其中的核心代码。
6.提取核心调用代码
在AlixDemo.java同目录下新建AlixPay.java,来提取AlixDemo.java的核心代码:
package com.tianxia.lib.baseworld.alipay;import java.net.URLEncoder;import java.text.SimpleDateFormat;import java.util.Date;import com.tianxia.lib.baseworld.R;import android.app.Activity;import android.app.ProgressDialog;import android.content.DialogInterface;import android.os.Handler;import android.os.Message;import android.view.KeyEvent;import android.widget.Toast;public class AlixPay { static String TAG = "AlixPay"; private Activity mActivity; public AlixPay(Activity activity) { mActivity = activity; } private ProgressDialog mProgress = null; // the handler use to receive the pay result. private Handler mHandler = new Handler() { public void handleMessage(Message msg) { try { String strRet = (String) msg.obj; switch (msg.what) { case AlixId.RQF_PAY: { closeProgress(); BaseHelper.log(TAG, strRet); try { String memo = "memo="; int imemoStart = strRet.indexOf("memo="); imemoStart += memo.length(); int imemoEnd = strRet.indexOf(";result="); memo = strRet.substring(imemoStart, imemoEnd); ResultChecker resultChecker = new ResultChecker(strRet); int retVal = resultChecker.checkSign(); if (retVal == ResultChecker.RESULT_CHECK_SIGN_FAILED) { BaseHelper.showDialog( mActivity, "提示", mActivity.getResources().getString( R.string.check_sign_failed), android.R.drawable.ic_dialog_alert); } else { BaseHelper.showDialog(mActivity, "提示", memo, R.drawable.infoicon); } } catch (Exception e) { e.printStackTrace(); BaseHelper.showDialog(mActivity, "提示", strRet, R.drawable.infoicon); } } break; } super.handleMessage(msg); } catch (Exception e) { e.printStackTrace(); } } }; // close the progress bar void closeProgress() { try { if (mProgress != null) { mProgress.dismiss(); mProgress = null; } } catch (Exception e) { e.printStackTrace(); } } public void pay() { MobileSecurePayHelper mspHelper = new MobileSecurePayHelper(mActivity); boolean isMobile_spExist = mspHelper.detectMobile_sp(); if (!isMobile_spExist) return; if (!checkInfo()) { BaseHelper.showDialog(mActivity, "提示", "缺少partner或者seller,", R.drawable.infoicon); return; } try { // prepare the order info. String orderInfo = getOrderInfo(); String signType = getSignType(); String strsign = sign(signType, orderInfo); strsign = URLEncoder.encode(strsign); String info = orderInfo + "sign=" + "\"" + strsign + "\"" + "" + getSignType(); // start the pay. MobileSecurePayer msp = new MobileSecurePayer(); boolean bRet = msp.pay(info, mHandler, AlixId.RQF_PAY, mActivity); if (bRet) { // show the progress bar to indicate that we have started paying. closeProgress(); mProgress = BaseHelper.showProgress(mActivity, null, "正在支付", false, true); } else ; } catch (Exception ex) { Toast.makeText(mActivity, R.string.remote_call_failed, Toast.LENGTH_SHORT).show(); } } private boolean checkInfo() { String partner = PartnerConfig.PARTNER; String seller = PartnerConfig.SELLER; if (partner == null || partner.length() = 0 || seller == null || seller.length() = 0) return false; return true; } // get the selected order info for pay. String getOrderInfo() { String strOrderInfo = "partner=" + "\"" + PartnerConfig.PARTNER + "\""; strOrderInfo += ""; strOrderInfo += "seller=" + "\"" + PartnerConfig.SELLER + "\""; strOrderInfo += ""; strOrderInfo += "out_trade_no=" + "\"" + getOutTradeNo() + "\""; strOrderInfo += ""; //这笔交易价钱 strOrderInfo += "subject=" + "\"" + mActivity.getString(R.string.donate_subject) + "\""; strOrderInfo += ""; //这笔交易内容 strOrderInfo += "body=" + "\"" + mActivity.getString(R.string.donate_body) + "\""; strOrderInfo += ""; //这笔交易价钱 strOrderInfo += "total_fee=" + "\"" + "10.00" + "\""; strOrderInfo += ""; strOrderInfo += "notify_url=" + "\"" + "" + "\""; return strOrderInfo; } // get the out_trade_no for an order. String getOutTradeNo() { SimpleDateFormat format = new SimpleDateFormat("MMddHHmmss"); Date date = new Date(); String strKey = format.format(date); java.util.Random r = new java.util.Random(); strKey = strKey + r.nextInt(); strKey = strKey.substring(0, 15); return strKey; } // get the sign type we use. String getSignType() { String getSignType = "sign_type=" + "\"" + "RSA" + "\""; return getSignType; } // sign the order info. String sign(String signType, String content) { return Rsa.sign(content, PartnerConfig.RSA_PRIVATE); } // the OnCancelListener for lephone platform. static class AlixOnCancelListener implements DialogInterface.OnCancelListener { Activity mcontext; AlixOnCancelListener(Activity context) { mcontext = context; } public void onCancel(DialogInterface dialog) { mcontext.onKeyDown(KeyEvent.KEYCODE_BACK, null); } }}
这个类的pay方法就是支付的方法,最简单的不设置的话,调用方法如下:
AlixPay alixPay = new AlixPay(SettingTabActivity.this);alixPay.pay();
如何调用支付宝支付接口,易语言可以吗?
你好,单独的软件是不可以调用的,亲
支付宝是基于网站的支付方式,所以你必须要建设一个网站,然后接入支付宝支付接口。然后再开发一个软件配合网站,就可以实现软件调用支付接口,看似是软件调用接口,但实际上是网站在起作用。
满意请采纳!谢谢
支付宝开发者工具接口调用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于支付宝开放平台接口、支付宝开发者工具接口调用的信息您可以在本站进行搜索查找阅读喔。
还没有评论,来说两句吧...