每个接口对应一个接口技术文档,文档中提到的请求参数,就是可以选择要传递的参数。
1)基本参数
partner、_input_charset、sign、sign_type、service这些属于基本参数,是必须要传递的参数。
2)业务参数
①在接口技术文档的请求参数列表中,不可空的参数是必须要传递的参数。
如:即时到账中total_fee、subject、out_trade_no等
②根据商户自身的业务需求或根据支付宝接口对应的特殊业务规则,有些参数也是需要传递过来的
如:即时到账中如果开通了防钓鱼策略,那么anti_phishing_key、exter_invoke_ip必须传递。
拿即时到账接口举例说明,如果确定了要传递参数是partner、_input_charset、sign、sign_type、service、notify_url、return_url、total_fee、subject、out_trade_no、payment_type、seller_email。
那么还需要获得这些参数对应的值,把参数及其对应的值集合到数组或集合中。
开发语言java为例:
Map<String, String> sParaTemp = new HashMap<String, String>(); sParaTemp.put("service", "create_direct_pay_by_user"); sParaTemp.put("partner", "2088501624560335"); sParaTemp.put("_input_charset", "utf-8"); sParaTemp.put("payment_type", "1"); sParaTemp.put("notify_url", "http://商户网关地址/alipay/notify_url.jsp"); sParaTemp.put("return_url", "http://商户网关地址/alipay/return_url.jsp"); sParaTemp.put("seller_email", "alipayrisk10@alipay.com"); sParaTemp.put("out_trade_no", "2012113000001"); sParaTemp.put("subject", "测试订单"); sParaTemp.put("total_fee", "0.01"); sParaTemp.put("sign", "此时是不知道的"); sParaTemp.put("sign_type", "MD5"); |
注意:
①参数对应的这些值一般都是通过商户端的订单系统、支付宝配置信息中动态获得。
②这些参数没有被编码过,是原始数据。
③这些参数的值,不能存在影响接口逻辑的特殊字符,例如:&、/、^、%、@、=、+等。